2017-04-04 9 views
7

JSON 파일을 사용하여 Swagger 2.0 Parser and validator 에 유효성을 검사했지만 순환 참조 오류가 발생했습니다. 순환 참조의 위치를 ​​감지 할 수있는 무료 도구 나 웹 사이트가 있습니까? 파일.JSON 스키마의 순환 종속성을 검사하는 도구

+0

StackOverflow는 다음과 같이 작동합니다. 문제가있는 코드를 제시하십시오 (이상적으로 [MCVE] (http://stackoverflow.com/help/mcve)). 귀하의 경우 순환 참조 문제를 나타내는 JSON 테스트 데이터도 표시해야합니다. 그러면 누군가 당신을 도울 수 있습니다. 그렇지 않으면 방금 더 가까운 투표를 받게됩니다. 아무도 대답에 대한 명확한 합격 기준없이 질문에 답하는 것을 좋아하지 않습니다. – kriegaex

답변

2

당신이 찾고있는 것이 이미 대답 된 것 같아요. here. 간단히 브라우저 콘솔을 열고이 자바 스크립트 입력 : 순환 참조가 어디

function isCyclic(obj) { 
    var keys = []; 
    var stack = []; 
    var stackSet = new Set(); 
    var detected = false; 

    function detect(obj, key) { 
    if (typeof obj != 'object') { return; } 

    if (stackSet.has(obj)) { // it's cyclic! Print the object and its locations. 
     var oldindex = stack.indexOf(obj); 
     var l1 = keys.join('.') + '.' + key; 
     var l2 = keys.slice(0, oldindex + 1).join('.'); 
     console.log('CIRCULAR: ' + l1 + ' = ' + l2 + ' = ' + obj); 
     console.log(obj); 
     detected = true; 
     return; 
    } 

    keys.push(key); 
    stack.push(obj); 
    stackSet.add(obj); 
    for (var k in obj) { //dive on the object's children 
     if (obj.hasOwnProperty(k)) { detect(obj[k], k); } 
    } 

    keys.pop(); 
    stack.pop(); 
    stackSet.delete(obj); 
    return; 
    } 

    detect(obj, 'obj'); 
    return detected; 
} 

는 그런 다음 IsCyclic(/*Json String*/) 전화를, 결과가 표시됩니다.