2016-06-27 4 views
0

중첩 된 json 파일에서 노드의 깊이를 찾는 많은 솔루션을 찾았습니다. 하지만 최대 재귀 한계를 초과했을 때 "최대 재귀 깊이가 초과되었습니다"라는 오류가 발생합니다. 최대 재귀 한계를 설정하면 "일부 오류 코드로 프로세스가 초과되었습니다"라고 표시됩니다. 문제의 일부로 각 노드의 키 이름을 json 파일.중첩 된 json 파일에서 노드의 깊이를 찾는 방법은 무엇입니까?

예시 JSON은 :

"attachments": { 
 
      "data": [ 
 
       { 
 
        "media": { 
 
        "image": { 
 
         "height": 400, 
 
         "src": "https://scontent.xx.fbcdn.net/v/t1.0-1/10250217_10152130974757825_8645405213175562082_n.jpg?oh=904c1785fc974a3208f1d18ac07d59f3&oe=57CED94D", 
 
         "width": 400 
 
        } 
 
        }, 
 
        "target": { 
 
        "id": "74286767824", 
 
        "url": "https://www.facebook.com/LAInternationalAirport/" 
 
        }, 
 
        "title": "Los Angeles International Airport (LAX)", 
 
        "type": "map", 
 
        "url": "https://www.facebook.com/LAInternationalAirport/" 
 
       } 
 
      ] 
 
     }

출력이 같아야

노드 : [데이터 [미디어 [이미지 [높이, 폭, SRC] 대상 [ID , url], 제목, 유형, URL]]

깊이 : 4

답변

0
function geth(obj) { 
    var depth = 0; 
    var k = Object.keys(obj); 
    console.log(k); 
    for (var i in k) { 
     var tmpDepth = geth(obj[k[i]]); 
     if (tmpDepth > depth) { 
      depth = tmpDepth 
     } 
    } 
    return 1 + depth; 
} 
+0

이것은 json 트리의 깊이를 재귀 적으로 계산합니다. – user2623720

관련 문제