我在使用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视为单个结构,并且不会在其元素的键上循环。从.each()函数接收的数据参数始终是原始的json本身。我永远无法获得指向aaa和bbb的内部JSON数组的引用。
这里会出现什么问题,我应该如何通过jQuery正确循环JSON中的所有键/值元素?
答案 0 :(得分:61)
由于你有一个对象,而不是一个jQuery包装器,你需要使用$.each()
的另一种变体$.each(json, function (key, data) {
console.log(key)
$.each(data, function (index, data) {
console.log('index', data)
})
})
演示:Fiddle
答案 1 :(得分:10)
使用简单的JSON对象,您不需要jQuery:
for (var i in json) {
for (var j in json[i]) {
console.log(json[i][j]);
}
}