【问题标题】:How do I traverse nested arrays/objects in JSON data?如何遍历 JSON 数据中的嵌套数组/对象?
【发布时间】:2014-02-08 08:05:30
【问题描述】:

我正在尝试在 Trello 中显示来自各个卡片的多个清单。我可以作为多个嵌套对象访问清单,但我不知道如何更深入地遍历以提取实际文本并使其成为列表项。

 Trello.get("cards/" + cardID + "/checklists", function(checklists) {
   console.log(checklists);
 });

the console log

数据:http://jsbin.com/OzEdUkU/2/edit

如何一直遍历到 checkItem 数组对象的名称?

【问题讨论】:

  • 如果我的回答不起作用,您能否将示例响应包含为 javascript 对象而不仅仅是日志输出?
  • 如何将示例响应包含为 javascript 对象?我是新手。当我尝试您的回答时出现此错误: [Error] TypeError: 'undefined' is not an object (evalating 'a.length') each (jquery-1.7.1.min.js, line 2) (anonymous function) ( trello.js,第 44 行)n(jquery-1.7.1.min.js,第 2 行)fireWith(jquery-1.7.1.min.js,第 2 行)w(jquery-1.7.1.min.js,行4)d(jquery-1.7.1.min.js,第4行)
  • 其实,试试这个。 console.log(JSON.stringify(checklists)) 我需要它在控制台日志中打印的字符串...把它放在那个 jsbin 中,单击共享,保存更改,然后为我评论链接。

标签: javascript jquery json api trello


【解决方案1】:

这会处理您数据集中的所有内容。 Live demo here (click).

$.each(checkList, function(i, obj) {
  console.log(obj);
  $.each(obj.checkItems, function(j, checkItem) {
    console.log(checkItem);
  });
});

checkList 是一个对象数组(集合)。在您的示例数据中,checkList 中嵌套了两个对象,因此第一个 $.each 用于每个对象。

每个对象都有一些带有字符串值的属性,而属性checkList 本身就是一个数组,因此第二个$.each 循环通过该对象的checkItems 数组。 checkItems 只包含带有字符串值的属性,所以没有额外的嵌套。

另请注意,$.each 只是传统 for 循环的 jQuery 简写函数,可以替换为普通 for 循环或更新的内置 js 函数forEach

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 1970-01-01
    • 2020-07-25
    • 2018-07-17
    • 2022-01-14
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    相关资源
    最近更新 更多