1

我知道这对你们中的一些人来说可能看起来很基础,但我正在尝试迭代一个 json 对象。我很抱歉,因为我似乎很难让各种例子起作用。我还阅读了 jQuery 文档,其中列出的 json 示例与我的 json 结构不太匹配。

这是我的示例的链接,它在我希望看到“1”的控制台中显示“null”。我只是想打印出 json 数组中每个“节点”的 article_id 元素。

http://jsfiddle.net/zZjfj/1/

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);
});
4

3 回答 3

5

您的 json 不是对象数组,它是对象数组的数组

当您在迭代中输入时,对于每个元素,arrayID是索引(0、1 等...),组是子数组。

要解决您的问题,请在代码中使用 json[0] 而不是 json

$.each(json[0], function (arrayID, group) {
    console.log(group.article_id);
});
于 2013-02-01T02:10:10.490 回答
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);
  });
});
于 2013-02-01T02:11:11.150 回答
1

您有一个嵌套在另一个数组中的数组。您可能想看看您的 JSON 是如何输出的,但与此同时,它可以通过另一个级别的迭代轻松解决:

$.each(json, function (arrayID, group) {
    $.each(group, function (arrayID, group) {
        console.log(group.article_id);
    });
});

http://jsfiddle.net/zZjfj/2/

我创建了一个脚本,它允许您在 JSON 中查看值的路径:http: //jsfiddle.net/ExplosionPIlls/zEBZr/1/

于 2013-02-01T02:11:26.493 回答