2016-12-26 1 views
0

json 응답을 처리하는 javascript 함수를 찾고 있는데요. 이 함수는 각 노드에 대한 키 값 쌍을 가져옵니다. json 응답 노드 깊이는 2 ~ 5,6,7 깊이가 될 수 있습니다. 나는 아래의 기능을 시도했지만 깊이가 2 노드 만 이동합니다. json 응답에서 노드의 변수 깊이를 처리 할 수있는 일반적인 함수를 만드는 방법이 있습니까?json 응답 깊은 노드 트래버스 인쇄 키 값

function process(key,value) { 
    Logger.log(key + " : "+value); 
} 

function traverse(o,func) { 
    for (var i in o) { 
     func.apply(this,[i,o[i]]); 
     if (o[i] !== null && typeof(o[i])=="object") { 
      //going on step down in the object tree!! 
      traverse(o[i],func); 
     } 
    } 
} 
+0

여러분의 코드가 모든 수준에서 반복되어야하는 것처럼 보입니다. – Barmar

+0

그것은 나를 위해 작동합니다 : https://jsfiddle.net/barmar/u7bo6tvx/4/ – Barmar

+0

나 앞에서 응답을하지 마십시오,하지만 나는 [개체] 일부 항목에 대한 반환 받고지고있다. 의견을 보내 주셔서 감사 드리며, 더 자세히 조사하겠습니다. – prothan

답변

1

변경은뿐만 아니라 중간 노드, 잎에 대한 콜백을 호출하도록 traverse 기능.

function traverse(o,func) { 
    for (var i in o) { 
     if (o[i] !== null && typeof(o[i])=="object") { 
      //going on step down in the object tree!! 
      traverse(o[i],func); 
     } else { 
      func.apply(this,[i,o[i]]); 
    } 
}