2016-11-18 1 views
-1

treeData JSON을 다른 것으로 변환해야하므로 자바 스크립트에서 시각적 라이브러리를 사용할 수 있습니다.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"] 

또는 같은 객체 표기법 물론 그것을 반복 할 수도 있습니다. e. 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

관련 문제