33

我在通过 jQuery .each() 函数循环 JSON 的键/值时遇到问题

最初我有一个这样的 JSON:

json = {"aaa":[
              {"id":"1","data":"aaa1data"}
              ,{"id":"2","data":"aaa2data"}
              ],
        "bbb":[
              {"id":"3","data":"bbb1data"}
              ]
       }

而且我想遍历JSON(aaa和bbb)中的所有键/值元素并检索内部JSON数组以再次循环,所以我尝试了

$(json).each(function(index,data)
{
    var zzz = data;
    $(zzz).each(function(index,data))
    {
       //some other stuff
    }
}

但是,我发现第一个 .each() 函数会将整个 json 视为单个结构,不会循环其元素的 key。从 .each() 函数接收到的数据参数始终是原始 json 本身。我永远无法获得指向 aaa 和 bbb 的内部 JSON 数组的引用。

这里会出现什么问题,我应该如何正确循环 jQuery 中的所有键/值元素?

4

2 回答 2

69

由于您有一个对象,而不是 jQuery 包装器,因此您需要使用$.each()的不同变体

$.each(json, function (key, data) {
    console.log(key)
    $.each(data, function (index, data) {
        console.log('index', data)
    })
})

演示:小提琴

于 2013-11-14T04:50:51.200 回答
11

使用简单的 JSON 对象,您不需要 jQuery:

for (var i in json) {
   for (var j in json[i]) {
     console.log(json[i][j]);
   }
}
于 2013-11-14T04:53:07.310 回答