【发布时间】:2016-03-24 07:45:17
【问题描述】:
我有一个大的嵌套 JSON 文件,用于绑定到树视图。我想通过文本搜索这个树视图数据源并获取所有匹配的节点,直到它的父节点,这样我就可以保留树结构。所以假设我有一个如下所示的 JSON:
[
{
"x": "Root-1",
"y": "000001",
"c": [
{
"x": "child-1",
"y": "000001.1"
},
{
"x": "child-2",
"y": "000001.2",
"c": [
{
"x": "child-3",
"y": "000001.3"
}
]
}
]
},
{
"x": "Root-2",
"y": "000002",
"c": [
{
"x": "child-4",
"y": "000002.1"
},
{
"x": "child-5",
"y": "000002.2",
"c": [
{
"x": "child-6",
"y": "000002.3",
"c": [
{
"x": "child-7",
"y": "000002.4"
}
]
}
]
}
]
}
]
现在在一个文本框中,我想做一个包含搜索:“1.3”,它应该在具有相同嵌套的对象下面返回我:
child-3(因为这个匹配),child-2(child-3 的父母)和 root-1(child-2 的父母)。
现在我可以使用这个 JSON 绑定到我的树视图。
【问题讨论】:
-
古老而邪恶的问题:你尝试了什么,给我们一些代码
-
请添加所需返回值的示例。
-
最简单的方法:在迭代时 JSON.stringify 每个数组元素,然后将您的术语与 JSON 匹配。
r.filter(x=>JSON.stringify(x).match(term))
标签: javascript jquery json treeview