首页 > 解决方案 > 使用 getJson 解析树

问题描述

我有一个包含订单数据的 JSON 文件。JSON 文件的格式如下:

{
  "orders": [
    {"name": "Peter", "email": "peter@aol.com"}

    {"name": "David", "email": "david@aol.com"}

    { "name": "George", "email": "george@aol.com"}
  ]
}

如你看到的; 所有数据都是一个名为的分支的一部分,"orders"然后每个订单都是它自己的分支,但该分支没有名称。

我正在尝试生成"name"数据集中的 s 列表。

使用简化的数据集,我会执行以下操作:

$(data).each(function(i, name){
    $('#namesText').append($("li")
        .append($("li").append(name.name))
  });
})

然而,这不起作用,因为数据不在树的第一级。

我的问题是,当关卡没有名称时,我如何降低关卡?

标签: javascriptjqueryhtmljson

解决方案


这听起来像是一个 DFS 问题,其中每个对象都有可能是原始数据类型或另一个对象的键。由于该name字段可能处于您需要解决的给定约束中的任何级别,我会说使用 DFS 算法,它遍历对象中的每个键,如果有另一个对象,请查看它,直到找到一个name字段。更好的解决方案是重新设计数据结构,这样就可以保证随时知道name字段所在的级别和位置。


推荐阅读