2017-12-29 39 views
0

원래 프로젝트에는 한 레벨의 JSON 데이터 만 있었지만 성장했으며 두 번째 중첩 된 레이어가 필요합니다. 나는 그것을 조사 것과자바 스크립트 및 jQuery를 사용하여 다중 레벨 중첩 JSON 데이터 표시

는 단순히 원래의 object.name을 내가 object.members.name처럼 만드는 데 필요한 새로운 회원 수준을 추가 할 수 있음을 보였다. 그러나이 오류 undefined 오류가 나타납니다.

분명히 뭔가 잘못되었거나 누락되었습니다. 잠시 동안 머리를 긁적 거리고 있습니다.

JSON 형식을 여러 번 확인하고 유효성 검사기 (OK 체크 아웃)를 통해 실행했는데 콘솔에 오류가 표시되지 않고 검색이 훨씬 복잡한 시나리오가 나타납니다. 문제가 무엇인지 좁힐 수는 없습니다.

도움이나 의견을 보내 주시면 감사하겠습니다. 여기

코드 블록입니다 :

  • 비 멀티 레벨
  • 작업을 단일 레벨 작업

비 작동 멀티 레벨 JSON 데이터 버전

var obj = 
 
{ 
 
    "results": [ 
 
    { \t \t \t \t 
 
     "members": [ 
 
      { \t 
 
      "name": "John Smith", 
 
      "state": "NY", 
 
      "phone": "555-555-1111" 
 
     }, 
 
     { 
 
      "name": "Mary Jones", 
 
      "state": "PA", 
 
      "phone": "555-555-2222" 
 
     }, 
 
     { 
 
      "name": "Edward Edwards", 
 
      "state": "NY", 
 
      "phone": "555-555-3333" 
 
     }, 
 
     { 
 
      "name": "Abby Abberson", 
 
      "state": "RI", 
 
      "phone": "555-555-4444" 
 
     } 
 
     ] 
 
    } 
 
    ] 
 
}; 
 

 

 
$(obj.results).each(function(k,object){ 
 

 
    var output = $("div.output"); 
 
    output.append(object.members.name + " "); 
 
    output.append(object.members.phone + "<br />"); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="output"></div>


작업을 단일 레벨 JSON 데이터 버전

var obj = { 
 
    "results": [ 
 

 
     { \t 
 
     "name": "John Smith", 
 
     "state": "NY", 
 
     "phone": "555-555-1111" 
 
    }, 
 
    { 
 
     "name": "Mary Jones", 
 
     "state": "PA", 
 
     "phone": "555-555-2222" 
 
    }, 
 
    { 
 
     "name": "Edward Edwards", 
 
     "state": "NY", 
 
     "phone": "555-555-3333" 
 
    }, 
 
    { 
 
     "name": "Abby Abberson", 
 
     "state": "RI", 
 
     "phone": "555-555-4444" 
 
    } 
 

 
    ] 
 
}; 
 

 

 
$(obj.results).each(function(k,object){ 
 

 
    var output = $("div.output"); 
 
    output.append(object.name + " "); 
 
    output.append(object.phone + "<br />"); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="output"></div>

답변

2

둥지하여 각 문을? 대신 사용 결과와 회원 -

var obj = { 
 
    "results": [{ 
 
    "members": [{ 
 
     "name": "John Smith", 
 
     "state": "NY", 
 
     "phone": "555-555-1111" 
 
     }, 
 
     { 
 
     "name": "Mary Jones", 
 
     "state": "PA", 
 
     "phone": "555-555-2222" 
 
     }, 
 
     { 
 
     "name": "Edward Edwards", 
 
     "state": "NY", 
 
     "phone": "555-555-3333" 
 
     }, 
 
     { 
 
     "name": "Abby Abberson", 
 
     "state": "RI", 
 
     "phone": "555-555-4444" 
 
     } 
 
    ] 
 
    }] 
 
}; 
 

 

 
$(obj.results).each(function(k, result) { 
 

 
    var output = $("div.output"); 
 
    $(result.members).each(function(index, member) { 
 
    output.append(member.name + " "); 
 
    output.append(member.phone + "<br />"); 
 
    }) 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="output"> 
 

 
</div>
물론

, 나는 '객체'또는 'OBJ'같은 이름을 사용하지 않는 것입니다. 훨씬 더 많은 니모닉. 그것이 무엇을 의미하는지 정확히 알게 될 것입니다.

+0

차가움. 다행이 당신을 위해 일 했어. – Snowmonkey