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,1 -
-
alert(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为key -
-
alert(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方法。可以用于遍历数据。

浙公网安备 33010602011771号