【发布时间】:2018-03-15 02:02:55
【问题描述】:
我有一个这样的 json 对象
{
"id": 1,
"name": "A",
"nodes": [
{
"id": 2,
"name": "B",
"nodes": [
{
"id": 3,
"name": "C",
"nodes": []
}
]
}
]
}
如果我输入对象的 id,让我们取 id: 3,我将如何扫描整个三个找到具有特定 id 的对象,然后向上扫描到最后一个父对象。
所以扫描完成后,我知道 C 有父 B,B 有父 A,所以我可以像 A-B-C 一样打印它
一切都基于我知道我想找到其父母的对象的 ID。
上述对象可以是任意长度,并且可以有许多节点和级别。因此,如果从特定级别开始,任何人都知道如何将级别遍历到顶级?
编辑:
当我尝试解析这个时
let data = [
{
"id": 1,
"name": "name",
"testing": "something",
"nodes": [
{
"id": 11,
"name": "name",
"testing": "something",
"nodes": []
}
]
},
{
"id": 2,
"name": "name",
"testing": "something",
"nodes": []
}
]
通过执行 JSON.parse(data) 到 json 对象我得到一个错误
SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
也试过了
let jsonObject = JSON.stringify($scope.data);
jsonObject = JSON.parse(jsonObject);
createTree(jsonObject, null, nodeData.id)
并得到不同的错误:
TypeError: obj.nodes is not iterable
【问题讨论】:
-
你有没有尝试过?如果是,请添加该代码。
标签: javascript json