简体   繁体   English

在javascript中循环遍历json

[英]looping through json in javascript

"obj" : {

"a" : [
      { "name" : "value" },
      { "name" : "value" },
      { "name" : "value }
     ],
"b" : [
      { "name" : "value" },
      { "name" : "value" },
      { "name" : "value" }
      ]
};

I have my json structured similarly to this in that "a" and "b" are objects that contain arrays which also contain objects. 我的json的结构与此类似,因为“ a”和“ b”是包含数组的对象,这些数组也包含对象。 I'm not very good with iteration/loops. 我对迭代/循环不是很好。 I mainly would like to get the value of "name". 我主要想获得“名称”的值。 any help? 有什么帮助吗? THANKS IN ADVANCE! 提前致谢!

var foo = JSON.parse(json);

for(var i in foo){
    for(var y = 0; y < foo[i].length; y++)
        alert(foo[i][y].name);
}

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/parse https://developer.mozilla.org/zh-CN/JavaScript/Reference/Global_Objects/JSON/parse

You can use forEach : 您可以使用forEach

Object.keys( json.obj ).forEach(function ( key ) {
    json.obj[ key ].forEach(function ( obj ) {
        // retrieve obj.name here
    });
});

Live demo: http://jsfiddle.net/4Mrkp/ 现场演示: http : //jsfiddle.net/4Mrkp/

Using underscore.js -> 使用underscore.js->

var obj = {

"a" : [
      { "name" : "value" },
      { "name" : "value" },
      { "name" : "value" }
     ],
"b" : [
      { "name" : "value" },
      { "name" : "value" },
      { "name" : "value" }
      ]
};

var names = _.chain(obj).values().flatten().pluck('name').value();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM