jQuery循环.each()JSON键/值不起作用

pas*_*ser 29 javascript each jquery json

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

最初我有一个像这样的JSON:

json = {"aaa":[
              {"id":"1","data":"aaa1data"}
              ,{"id":"2","data":"aaa2data"}
              ],
        "bbb":[
              {"id":"3","data":"bbb1data"}
              ]
       }
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Aru*_*hny 63

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

$.each(json, function (key, data) {
    console.log(key)
    $.each(data, function (index, data) {
        console.log('index', data)
    })
})
Run Code Online (Sandbox Code Playgroud)

演示:小提琴


Jef*_*son 10

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

for (var i in json) {
   for (var j in json[i]) {
     console.log(json[i][j]);
   }
}
Run Code Online (Sandbox Code Playgroud)