之前,我们介绍了两种方式获取 JSON 值,不过,JSON 中每个条目的访问如果要一一使用这些方式来访问,则显得有点烦琐。为了简化 JSON 条目的访问代码,我们可以使用 for-in 循环语句遍历访问 JSON 解析后得到的对象的每个属性来间接得到 JSON 的每个条目的值。
图 1:使用 for-in 循环语句遍历 JSON 解析后得到的对象属性
【例 1】使用 for-in 遍历 JSON 解析后得到的对象属性。
<!doctype html> <html> <head> <meta charset = "utf-8"> <title>使用for-in遍历JSON解析后得到的对象属性</title> <script> var json = '{"age":8,"company":"XXX公司", "city":["广州","深圳","珠海"],'+ '"ceo":{"firstName":"Jason","lastName":"Hunter"}}'; var obj = JSON.parse(json); var num = 0; for(var item in obj){ num++; console.log('第' + num + '个条目名称=' + item + ',它的值如下:'); console.log(obj[item]); } </script> </head> <body> </body> </html>
上述代码在 Chrome 浏览器中的运行结果如图 1 所示。
图 1:使用 for-in 循环语句遍历 JSON 解析后得到的对象属性
从图 1 可看出,例 1 中的 item 就是 JSON 解析得到的 JS 对象的属性,其名称对应 JSON 的条目名称,即键/值对中的键名。可见,对 JSON 来说,for-in 的具体格式其实就是:for 属性名 in JSON 解析得到的 JS 对象,意思就是:遍历 JSON 解析得到的 JS 对象中的每个属性。
由例 1 可见,使用 for-in 可以遍历一个 JS 对象的所有属性,例如使用 for-in 遍历 window 内置对象的属性的代码如下所示:
for(var attr in window){ console.log(attr + ": " + window[attr]); }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/23967.html