【问题标题】:looping through json in javascript在javascript中循环遍历json
【发布时间】:2012-07-20 14:20:02
【问题描述】:
"obj" : {

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

我的 json 结构与此类似,因为“a”和“b”是包含数组的对象,数组也包含对象。我对迭代/循环不是很好。我主要想获得“名称”的值。有什么帮助吗?提前致谢!

【问题讨论】:

  • 我不明白你想要什么。请更清楚...
  • 将 JSON 转换为对象,然后使用该对象。
  • 对不起。例如,假设“b”中的每个“值”都是不同的数字或不同的字符串,我希望能够迭代/循环并在单个函数中获取每个值

标签: javascript xml json oop


【解决方案1】:
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

【讨论】:

    【解决方案2】:

    你可以使用forEach:

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

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

    【讨论】:

      【解决方案3】:

      使用 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();
      

      【讨论】:

      • 如果你有演示,你会得到我的 +1。
      猜你喜欢
      • 2011-12-25
      • 2016-11-18
      • 1970-01-01
      • 2013-08-16
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多