1.JS对象与json对象区别:
JS 对象:
var JSobj= {
name:"ding";//也可以写成"name":"ding"
age:21;//也可以写成"age":21;
}
json对象:
var json = {
"name":"ding";
//不能写成name:”ding”,JSON中的对象和属性都比必须加上双引号。
}
2.JSON对象和JS对象可以使用相应的函数进行解析(不太熟,以后补充)。
3.JSON数组表示、访问及遍历
JSON数组表示:
情况1:
var me=[
{"name":"ding",
"age":12
},
{
"like":"girl"
}
]
访问JSON对象
alert(me[0]['name']);
或:
alert(me[0].name)
情况2:
var json_anwser2 = [{
"0": 1,
"1": 2,
"2": 3
}]
访问: alert(json[0])//弹出object object;
如果写:alert(json[1])//弹出undefine;
所以即使只有一个数组也要加上对应下标[0].(遍历时也要注意这点:文章结尾遍历)
即:alert(json[0][0])。//弹出1;
json遍历:
情况1:
var json1 = {"user":[{"name":"ding"},{"name","ding2"}]};
for(var i=0;i<json.a.length;i++)
{
alert(json1.abc[0].name)
}
情况2:
var json2={"name":"txt1","name2":"txt2"};
for(var i=0;i<json2.length;i++)
{
alert(json2[i]);
}//这是错误遍历方法:
JSON1的可以这样遍历是因为json.a是一个数组对象,有length属性。
JSON2是JSON对象,JSON对象无length属性。
正确遍历方法for in
for (i in json2)
{alert(i);
alert(json2[i]);
}
获取JSON长度:
for (i in json2)
{i++;
return i;
}
二维数组JSON 的遍历
1.首先了解for in 遍历顺序
测试1:
arr = [["a","b","c"],["d","e"]];
for (i in arr){alert(i)
}
结果:先后弹出:0、1
所以多维数组遍历需要用相应数组维数的for in,即对每一个数组内部进行for in遍历。
验证:
arr = [["a","b","c"],["d","e"]];
for (i in arr){
for (j in arr[i]){
alert(arr[i][j] +":"+i )
}
}
弹出显示顺序:
a:0
b:0
c:0
d:1
e:1
所以:
var json_anwser2 = [{
"0": 1,
"1": 2,
"2": 3
}]
这个JSON遍历也需要使用两次for in
for (i in json_anwser)
{
for (j in json_anwser[i])
{
alert(json_anwser2[i][j]);
}
}