json学习-嵌套对象中数组的遍历

定义json对象

var myObj={
    "name":"OY",
    "num":16110126,
    "sites":[
        {"name":"OY1","num":26,"site":["some1","any1","thing1"]},
        {"name":"OY2","num":126,"site":["some2","any2","thing2"]},
        {"name":"OY3","num":110126,"site":["some3","any3","thing3"]}
    ]
}

遍历输出

function myfunc(){
    var x="";
    for(var k in myObj){
        x+="

"+myObj[k]+"

"; //最外层循环输出myObj的三个属性所对应的值 for(var i in myObj.sites){ x+="

"+myObj.sites[i].name+""; //中间层循环输出嵌套对象sites的name属性的值 for(var j in myObj.sites[i].site){ x+="

"+myObj.sites[i].site[j]+"

";//最内层循环输出site数组的值 } } } document.getElementById("demos").innerHTML=x; //输出内容 }

输出效果

json学习-嵌套对象中数组的遍历_第1张图片

学习点

1.json数据的格式是:键值对(“键”:“值”),且用逗号,分隔
2.json中的值 数字和null 不加引号
3.json对象用大括号{} 可以存多个key/value(键/值)对,数组用[] 可以存多个值或多个对象
4.json文件类型为.json后缀
5.可以删除对象中的属性和修改对象中的值
6.上例for循环中myObj[k]获得值value,而直接用k获得键key

一些笔记点

json 对象和 json 字符串的区别
json对象 :var str2 = { “name”: “asan”, “sex”: “man” };
json字符串:var str1 = ‘{ “name”: “deyuyi”, “sex”: “man” }’;

在使用for遍历时,只能通过 myObj[x] 来获取相应属性的值,而不能使用 myObj.x

json 在进行通过键名来获取值时,需要特别注意一下。把键名赋值给另外一个变量,然后通过.方式去获取值。这种方式是行不通的。

var myObj, x;
myObj = { "name":"noname", "num":126, "site":null };
x = "name";
document.getElementById("demo").innerHTML = myObj.x;  // 结果是 undefined

只能通过 [] 方式去访问:

var myObj, x;
myObj = { "name":"noname", "num":126, "site":null };
x = "name";
document.getElementById("demo").innerHTML = myObj[x];  // 结果是 noname

json中的delete运算符并不是彻底删除元素,而是删除它的值,但仍会保留空间。delete 只是将该值置为undefined,而不会影响数组长度,即将其变为稀疏数组

你可能感兴趣的:(前端基础)