在javascript中迭代json数组

时间:2014-05-01 12:27:42

标签: javascript json

您已经生成了以下json,我可以迭代这个 我已经使用一些网站验证了这个josn

以下只是示例,可以有更多部分,如MATHS,LOGICAL REASONING,ENGLISH

他们也可以有自己的类型

 {    "MATHS": [
    {
        "Section": "MATHS",
        "Type": "INCORRECT",
        "Count": "5"
    },
    {
        "Section": "MATHS",
        "Type": "NOT SOLVED",
        "Count": "20"
    }
],
"LOGICAL REASONING": [
    {
        "Section": "LOGICAL REASONING",
        "Type": "CORRECT",
        "Count": "1"
    },
    {
        "Section": "LOGICAL REASONING",
        "Type": "INCORRECT",
        "Count": "4"
    },
    {
        "Section": "LOGICAL REASONING",
        "Type": "NOT SOLVED",
        "Count": "20"
    }
]
 }

我搜索过可能有关堆栈溢出的问题,但没有一个可以帮助我

1 个答案:

答案 0 :(得分:0)

您的JSON有2个顶级元素。因此,您无法在整个文档中进行逻辑迭代(不会展平它)。

但是你可以迭代“MATHS”和“LOGICAL REASONING”元素。

例如,使用下划线:

_(data.MATHS).each(function(item) {
  var section = item.SECTION;
  var type = item.TYPE;
  var count = item.COUNT;

  // Now do something with them
});

请注意“LOGICAL REASONING”元素的不同访问方法,因为空格。

_(data['LOGICAL REASONING').each(function(item) {
  var section = item.SECTION;
  var type = item.TYPE;
  var count = item.COUNT;

  // Now do something with them
});

如果您想要所有数据,一种方法是:

var flattened = _.union(data.MATHS, data['LOGICAL REASONING']);

_(flattened).each(function(item) {
  // Process...
});

查看下划线文档,了解有关可能性的更多信息。许多方法给猫皮肤。

http://underscorejs.org/

干杯。