【发布时间】:2018-11-22 17:30:23
【问题描述】:
这是我得到的 JSON 输出的格式
oldJSON = [
{ "Node": "Node1", "NodeParent": "" },
{ "Node": "Node1A", "NodeParent": "Node1" },
{ "Node": "Node1B", "NodeParent": "Node1" },
{ "Node": "Node2", "NodeParent": "" },
{ "Node": "Node2A", "NodeParent": "Node2" },
{ "Node": "Node2B", "NodeParent": "Node2" },
{ "Node": "Node3", "NodeParent": "" },
{ "Node": "Node3A", "NodeParent": "Node3" },
{ "Node": "Node3A1", "NodeParent": "Node3;Node3A" },
{ "Node": "Node3A2", "NodeParent": "Node3;Node3A" },
{ "Node": "Node3A3", "NodeParent": "Node3;Node3A" },
{ "Node": "Node3A1x", "NodeParent": "Node3;Node3A:Node3A1" },
{ "Node": "Node3A1y", "NodeParent": "Node3;Node3A:Node3A1" },
{ "Node": "Node3A1z", "NodeParent": "Node3;Node3A:Node3A1" },
{ "Node": "Node3B", "NodeParent": "Node3" },
{ "Node": "Node3B1", "NodeParent": "Node3;Node3B" },
{ "Node": "Node3B2", "NodeParent": "Node3;Node3B" },
{ "Node": "Node3B3", "NodeParent": "Node3;Node3B" },
{ "Node": "Node3B1x", "NodeParent": "Node3;Node3B:Node3B1" },
{ "Node": "Node3B1y", "NodeParent": "Node3;Node3B:Node3B1" },
{ "Node": "Node3B1z", "NodeParent": "Node3;Node3B:Node3B1" }]
我想将上面的 JSON 转换为如下所示的树状结构。
NewJsonArray = [
{
"Node": "Node1",
"children": [
{
"Node": "Node1A"
},
{
"Node": "Node1B"
}
]
},
{
"Node": "Node2",
"children": [
{
"Node": "Node2A"
},
{
"Node": "Node2B"
}
]
},
{
"Node": "Node3",
"children": [
{
"Node": "Node3A"
},
{
"Node": "Node3B"
}
],
"Node3A": {
"Node": "Node3A",
"children": [
{
"Node": "Node3A1"
},
{
"Node": "Node3A2"
},
{
"Node": "Node3A3"
}
],
"Node3A1": {
"Node": "Node3A1",
"children": [
{
"Node": "Node3A1x"
},
{
"Node": "Node3A1y"
},
{
"Node": "Node3A1z"
}
]
}
},
"Node3B": {
"Node": "Node3B",
"children": [
{
"Node": "Node3B1"
},
{
"Node": "Node3B2"
},
{
"Node": "Node3B3"
}
],
"Node3B1": {
"Node": "Node3B1",
"children": [
{
"Node": "Node3B1x"
},
{
"Node": "Node3B1y"
},
{
"Node": "Node3B1z"
}
]
}
}
}
]
你可以看到NodeParent是用分号隔开的,要求是把NodeParent分割开,这样就可以生成类似JSON的树并推送到对应的父节点下。
【问题讨论】:
-
NodeParent是否始终包含到节点的整个路径?请添加您的尝试。 -
@NinaScholz,是的,正确的 NodeParent 始终包含节点的整个路径。
标签: javascript arrays json ecmascript-6