私は以下のようなオブジェクト配列を持っています。示されるように、その要素と値の指標であるキー:オブジェクトの配列を操作し、データとリンクの2つの配列のセットを作成するJavaScript。
[
{
"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": []
}
]
}
]
}
]
}
]
}
]
Iは含まアレイの2つの設定
- ノードデータアレイを作成するために、各要素及びそれらのそれぞれの子供を解析し、それを操作します
nodeDataArray.push({key:i、Data:a.yang_type + "" + a.name})またはnodeDataArray.push({key:i、Data:a.name + "" + a。値})
- リンク(親子関係船)
linkDataArray.pushが含ま
リンクデータアレイ({から:I、へ:J})。私は親とjの指標である
が
子
の指標であるI要素を解析し、インデックスを持つノードデータ配列にして細かいそれらをプッシュし、以下の機能を持っています。文言以下vm.tree.forEach(loop);// here vm.tree is the json data, passed dynamically
var 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 });
}
i=i+1;
// process you data
//if(Array.isArray(a.children)){j++;}
if(Array.isArray(a.children)){
//var g=0;
a.children.forEach(loop);
}
}
私の予想出力はJSON経由
解析することとしてJSONオブジェクト内のすべての要素をリストアップすべきであるかについて、それをより明確にするために、サンプルJSONに基づいています以下に示す
car v8_engine cylinder-arrangement type string max-elements 8 other_parts per-cylinder-parts piston-diameter type UINT32 range 2000...3000 valves number position
親子インデックスに基づく関係のリスト。車は0番目の要素である場合、v8_engineは第二とそうである...位置12日
だから我々は、上記の例から13個の要素の合計を持っていることである最後の1まで。今私は彼らの関係船もリストアップする必要があります。親リストを生成するには
0th element is parent of 1 and 5.
1st element is parent of 2
2nd element is parent of 3 and 4
and so on
あなたのコードは、あなたがやりたいことはありませんか? – Veverke
最初の部分はノードデータ配列を保存しますが、リンクデータ配列はJSONに基づいて正しい親と子をマップしません – Nadvez
これはJSONではなく、JSONとは関係ありません。 JSONの内容(json.orgを参照)を教えて、質問を書き直してください。また、オブジェクトを操作することはそれらを「解析する」こともありません。 「構文解析」という言葉は、「文法に従って記号列を解析するプロセス」という特定の意味を持っています。また、より小さなサンプルデータセットを与えて、あなたの過剰インデントを修正してください。 –