我知道这对你们中的一些人来说似乎很基本,但我试图迭代一个json对象。我道歉,因为我似乎很难得到各种各样的例子。我还阅读了jQuery文档,其中列出的json示例与我的json结构不太匹配。
这是我的示例的链接,它在控制台中显示“null”,我希望看到“1”。我只是想在json数组中打印出每个“node”的article_id元素。
var json = [
[{
"article_id": 1,
"article_title": "test",
"article_content": "test1"
}, {
"article_id": 2,
"article_title": "test2",
"article_content": "this is a second test article"
}]
];
$.each(json, function (arrayID, group) {
console.log(group.article_id);
});
答案 0 :(得分:5)
你的json不是一个对象数组,它是一个对象数组的数组。
当您输入迭代时,对于每个元素, arrayID 是索引(0,1等等...),组是子数组。
要解决您的问题,请在代码中使用json [0]代替json
$.each(json[0], function (arrayID, group) {
console.log(group.article_id);
});
答案 1 :(得分:1)
您的对象'json'是一个包含1个元素的数组,它本身就是一个包含2个元素的数组。如果您将示例更改为:
var json = [
{ "article_id": 1,
"article_title": "test",
"article_content": "test1" },
{ "article_id": 2,
"article_title": "test2",
"article_content": "this is a second test article" }
];
然后它产生文章ID:1,2。
如果需要迭代二维数组,则可以使用嵌套循环:
$.each(json, function (idx1, entry) {
$.each(entry, function (idx2, group) {
console.log(group.article_id);
});
});
答案 2 :(得分:1)
你有一个嵌套在另一个数组中的数组。您可能想看看您的JSON是如何输出的,但与此同时它可以通过另一个迭代级别轻松解决:
$.each(json, function (arrayID, group) {
$.each(group, function (arrayID, group) {
console.log(group.article_id);
});
});
我创建了一个脚本,允许您在JSON中查看值的路径:http://jsfiddle.net/ExplosionPIlls/zEBZr/1/