JSON语法、对象、遍历数组的区别和基本操作
JSON 语法规则
- JSON 语法是 javascript 对象表示语法的子集。
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 名称/值对
- JSON 数据的书写格式是:名称/值对。
- 名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:
- "firstName":"John"
JSON 值
- JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON正常就是由对象和数组组成,对象使用对象的方法来进行操作。数组使用数组的方法来进行操作。
数组
var ourcountry=[["北京市"],["上海市"],["合肥市","芜湖市","蚌埠市"]]; // 数组alert(ourcountry[2][1]);
JSON对象
var status_process = {" name5" : '闲置期',"name1" : '播种期',"name2" : '苗期',"name3" : '生长期',"name4" : '采收期'}alert(status_process["name5"]);alert(status_process.name5);// 两个都为:闲置期
JSON字符串
所谓json字符串,是指该字符串变量的值与json的格式相同,但是不是json对象,比如:
var s1="{";var s2 = " 'name5' : '闲置期', 'name1' : '播种期','name2' : '苗期','name3' : '生长期','name4' : '采收期'";var s3="}";var status_process=s1+s2+s3;
JSON数组遍历
packJson = [{"name":"zhang", "password":"123"},{"name":"li", "password":"456"}];for(var p in packJson){//遍历json数组时,这么写p为索引,0,1alert(packJson[p].name + " " + packJson[p].password);}// 或者for(var i = 0; i < packJson.length; i++){alert(packJson[i].name + " " + packJson[i].password);}
JSON数组的操作
1.定义
var josnArry=[];
2.添加
jsonArry.push(jsonObj);
3.删除
delete jsonArry[0];splice(index,length):
4.循环访问数组
a.jquery
$.each(jsonArry,function(index,item){var userId=item.userId;});
b.一般方式
for(var i=0;i<jsonArry.length;i++){var userId=jsonArry[i].userId;}
c.特殊方法
for(var item in jsonArry){var userId=jsonArry[item].userId;//注意:此处的item不是数组项,而是数组项的索引}
JSON对象遍历
myJson = {"name":"ji", "password":"123"};for(var p in myJson){//遍历json对象的每个key/value对,p为keyalert(p + " " + myJson[p]);}
字符串和json对象和json对象数组相互转换
var jsonStr = "{\"userId\":\"001\"}"; // json对象字符串var jsonArryStr = "[{\"userId\":\"001\"},{\"userId\":\"002\"}]"; // json数组字符串var jsonObj = JSON.parse(jsonStr); // 字符串转为json对象var jsonArry = JSON.parse(jsonArryStr); // 字符串转为json数组var jsonStr = JSON.stringify(jsonObj); // json对象转为字符串var jsonArryStr=JSON.stringify(jsonArry);// json数组转为字符串alert(jsonStr);alert(jsonArryStr);alert(jsonObj.userId);alert(jsonArry[0]['userId']);
提示:
只有数组或者json数组才可以使用length方法。json对象使用length方法无效。
如果json对象的子元素是数组或者json数组,也可以使用length方法。可以用于遍历数据。
JSON语法、对象、遍历数组的区别和基本操作的更多相关文章
- JSON数组,JSON对象,数组的区别与基本操作整理
JSON 语法规则 JSON 语法是 javascript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是: ...
- js Json与对象、数组转化
对象.数组转json json = JSON.stringify(obj) json 转对象.数组 arr = JSON.parse(json)
- 浅析PHP中for与foreach两个循环结构遍历数组的区别
遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...
- 深度理解PHP中for与foreach两个循环结构遍历数组的区别
遍历一个数组是编程中最常见不过的了,这里讨论下for和foreach两种方法: 首先,我们先准备两个用于遍历的数组: $arr1=array(1=>'a', 3=>22, 5=>'b ...
- 用递归将嵌套的JSON对象遍历出来,转为二维数组
如题所示,代码如下: var arJsonNesting = [{id:1,name:"zhang3" ,children:[{id:2,name:"zhang33&qu ...
- 遍历数组,对象和JSON
遍历数组 var arr2 = [3,4,5,6,7,8]; //第一种方法 for(var i =0;i<arr.length;i++){ console.log(arr2[i]); } // ...
- js遍历数组和遍历对象的区别
<script> //----------------for用来遍历数组对象-- var i,myArr = [1,2,3]; for (var i = 0; i < myArr.l ...
- vue遍历数组和对象的方法以及他们之间的区别
前言:vue不能直接通过下标的形式来添加数据,vue也不能直接向对象中插值,因为那样即使能插入值,页面也不会重新渲染数据 一,vue遍历数组 1,使用vue数组变异方法 pop() 删除数组最后一 ...
- jQuery遍历对象、数组、集合实例
1.jquery 遍历对象 复制代码代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ...
随机推荐
- Qt5 入门
main()函数中第一句是创建一个QApplication类的实例. 对于 Qt 程序来说,main()函数一般以创建 application 对象(GUI 程序是QApplication,非 GUI ...
- kubernetes 编排详解 挂载
##kube挂载本地磁盘apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: re ...
- BZOJ1004[HNOI2008]Cards——polya定理+背包
题目描述 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红色,Sb张蓝色 ...
- Comet OJ - Contest #0
A:化成x-√n=y+z-√4yz的形式,则显然n是完全平方数时有无数组解,否则要求n=4yz,暴力枚举n的因数即可.注意判断根号下是否不小于0. #include<iostream> # ...
- visual studio 显示引用关系 作者更改项
visual studio 2017中,每个类或者方法顶部会显示此方法的引用关系或者作者更改项:这个功能极大了提高了我们代码的定位效率:不过有时候却发现每一行代码都有,会增加我们屏幕显示内容,有时候看 ...
- Codeforces Round #545 (Div. 2) D
链接:http://codeforces.com/contest/1138/problem/D 啊啊啊啊啊啊,自闭啊,比赛的时候判断条件 if(s1[i-1]=='0') aa++;写成了 if(s1 ...
- python_getpass 模块的使用
可以实现输入用户密码的时候隐藏输入显示.更加安全. 默认自带Password: 的提示 如果自己指定提示内容就用自己的替换默认 import getpass passwd = getpass.getp ...
- 使用Putty执行Rsync命令
背景介绍:公司的文件服务器有多个,一个Master服务器,10个左右的Slave服务器. 当Master服务器中的文件更新之后,Slave服务器中的文件也必须做相对应的同步操作. 公司目前使用的Rsy ...
- 【题解】 bzoj2982: combination (Lucas定理)
题面戳我 Solution 板子题 Code //It is coded by ning_mew on 7.25 #include<bits/stdc++.h> #define LL lo ...
- Android多种方法显示当前日期和时间
文章选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术.本文探讨Android显示当前日期和时间的方法. ...