jQuery循环.each()JSON键/值不起作用
Posted
技术标签:
【中文标题】jQuery循环.each()JSON键/值不起作用【英文标题】:jQuery looping .each() JSON key/value not working 【发布时间】:2013-11-26 23:55:38 【问题描述】:我在通过 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 正确循环 JSON 中的所有键/值元素?
【问题讨论】:
【参考方案1】:由于您有一个对象,而不是 jQuery 包装器,因此您需要使用 $.each() 的不同变体
$.each(json, function (key, data)
console.log(key)
$.each(data, function (index, data)
console.log('index', data)
)
)
演示:Fiddle
【讨论】:
有效!感谢您的解释,因为我不知道 $.each() 和 $(selector).each() 的工作方式不同:)。 @Arun p Johny -console.log('index', data)
这里的数据是参数或数组索引,与数据这个词混淆了,如果我只想要第二个值,我怎么能得到?没有身份证?
我的json是 "0":"tech_id":"35","tech_name":"Ajax", "1":"tech_id":"36","tech_name":"Ajax"
【参考方案2】:
有了一个简单的 JSON 对象,你就不需要 jQuery:
for (var i in json)
for (var j in json[i])
console.log(json[i][j]);
【讨论】:
以上是关于jQuery循环.each()JSON键/值不起作用的主要内容,如果未能解决你的问题,请参考以下文章