У меня есть JSON DATA, как показано ниже.
[
{
"name": "car",
"value": "",
"children": [
{
"name": "v8_engine",
"value": "",
"children": [
{
"name": "cylinder-arrangement",
"value": "",
"children": [
{
"name": "type",
"value": "string",
"children": []
},
{
"name": "max-elements",
"value": "8",
"children": []
}
]
}
]
},
{
"name": "other-parts",
"value": "",
"children": [
{
"name": "per-cylinder-parts",
"value": "",
"children": [
{
"name": "piston-diameter",
"value": "",
"children": [
{
"name": "type",
"value": "uint32",
"children": []
},
{
"name": "range",
"value": "2000... 9000",
"children": []
}
]
},
{
"name": "valves",
"value": "",
"children": [
{
"name": "number",
"value": "",
"children": []
},
{
"name": "position",
"value": "",
"children": []
}
]
}
]
}
]
}
]
}
]
Я хочу проанализировать все элементы и их соответствующие дочерние элементы и перечислить их как родительские дочерние элементы и их внуки, как простое дерево в GOJS.
Я использую следующую логику, но она просто анализирует и отправляет данные узла и элемент массива данных ссылки в модели go-js.
переменная i=0;
function loop(a) {
if(a.yang_type!='' && a.name!=''){
nodeDataArray.push({ key:i,Data: a.yang_type + " " + a.name, group: -1 });
console.log("Data:",a.yang_type);
linkDataArray.push({ from: i, to: i+1 });
}
if(a.name!='' && a.value!=''){
nodeDataArray.push({ key:i,Data: a.name + " " + a.value, group: -1 });
linkDataArray.push({ from: 0, to: i+1 });
}
//console.log(a.name);
i=i+1;
// process you data
Array.isArray(a.children) && a.children.forEach(loop); // check and iterate children
myDiagram.model = go.GraphLinksModel(nodeDataArray, linkDataArray);
}
Прилагается вывод, который я получаю, но дети загромождены. Я пропускаю какую-то логику в нажатии?