2016-11-18 47 views
-1

treeData JSONを別のものに変換する必要があります。そのため、私はそれに対するJavaスクリプトでいくつかの可視化ライブラリを使用できます。JSONのようなJSONをJSONのように変換する

treeData={ 
     "leftNode": { 
      "leftNode": { 
       "leftNode": { 
        "leftNode": { 
         "leftNode": "fence_brand_name = 'reebok'", 
         "rightNode": "fence_brand_id = 123", 
         "centerOperator": "OR" 
        }, 
        "rightNode": "fence_category_name = 'shoes'", 
        "centerOperator": "AND" 
       }, 
       "rightNode": "latitude > 19.1140997", 
       "centerOperator": "AND" 
      }, 
      "rightNode": "latitude = 72.89498", 
      "centerOperator": "AND" 
     }, 
     "rightNode": "radius = 5000", 
     "centerOperator": "AND" 
    } 

このツリーの深さは、何もすることができ、私はにこれを変換したい形式は、私はこのコードが、今のところ何もありませんを使用してみましたよ

newTreeData=[{ 
      leftNode=[{ 
        leftNode=[{ 
          leftNode="left" 
          rightNode="right", 
          centerOperator="op" 
         }], 
        rightNode="right", 
        centerOperator="op" 
      }], 
      rightNode="right", 
      centerOperator="op" 
      }] 

です。

var addNodes=function(data){ 
if(isObj(data.leftNode)){ 
var right=data.rightNode; 
var center=data.centerOperator; 
    newTreeData.push(rightNode:right,newCenterOperator:center,leftNode:[]); 
addNodes(data.leftNode); 
    }else{ 
newTreeData.push(rightNode:data.rightNode,centerOperator:data.centerOperator,leftNode:[]); 
    } 
} 

var function isObj(val) { 
if (val === null) { return false;} 
return ((typeof val === 'function') || (typeof val === 'object')); 
} 

答えて

0

あなたはこのように、配列表記でも、JSONオブジェクトにアクセスすることができますので、あなたは、それを必要としない:

treeData.leftNode.leftNode 

treeData["leftNode"]["leftNode"] 

または、このようなオブジェクト表記でもちろん、それを反復することもできます。 g:

for (var leftNode in treeData.leftNode) { 
    // do something with leftNode 
} 
+0

私は樹の深さを知りません。だから私はオブジェクト表記@ alpham8を使用することはできません – Subhash

+0

しかし、それを反復処理することができます。それは単純な例でした。あなたはそれを再帰的に反復することができます。関数の再帰的ループについて知る:http://stackoverflow.com/questions/2549320/looping-through-an-object-tree-recursively – alpham8

+0

うん、それは多くの感謝を得た.. – Subhash

関連する問題