2013-10-26 4 views
0

이 문제를 이해하는 데 문제가 있습니다. 테스트 목적으로 list.json 파일에이 json 파일이 있습니다. 나중에이 목록을 서버에서 생성합니다.jQuery를 사용하여 JSON에서 동적 중첩 목록 만들기

[ 
{ 
    name : "ABC", 
    id  : "link_abc" 
}, 
{ 
    name : "DEF", 
    id  : "link_def" 
}, 
{ 
    name : "GHI", 
    id  : "link_ghi" 
}, 
{ 
    name : "JKL", 
    id  : "link_jkl" 
} 

] 

그리고 여기가 <li> 형식 목록을 표시하는 내 자바 스크립트입니다.

$(function(generate_list_from_JSON){ 
$('a[href="#state"]').click(function(){ 
    $.getJSON("scripts/list.json", function (obj){ 
     $.each(obj.name, function (key, value){ 
      alert(key); 
      }) 
     }); 
    }); 
}); 

문제는 콘솔에도 아무 것도 표시되지 않는다는 것입니다. 전송 내용과 수신 내용을 어떻게 트래핑합니까? 나는 console.log()을 시도했지만 여전히 비어 있습니다.

+0

모든 행에서 개발자 콘솔 내에서 설정 디버그 중단 점을 시도 했습니까? 이것은 특정 부분이 예상대로 작동하지 않는다는 것을 알려줍니다. – Corey

+0

jsonlint.com을 사용하여 json – charlietfl

답변

2

JSON은 속성 이름을 따옴표로 묶어야합니다.

[ 
{ 
    "name" : "ABC", 
    "id"  : "link_abc" 
}, 
... 
] 

자바 스크립트 객체 속성의 이름을 인용 할 필요는 없지만, JSON을 수행합니다 그래서 당신은 같은 것을 할 필요가있다.

HTH

+0

이것은 하나의 문제를 해결합니다. 나는 속성에 접근 할 수 있지만 @Corey가 말했듯이 배열에 대해 각각을 수행 할 수는 없다. 나는 그것을 잠시 동안 발견 할 것이다. 감사합니다 무리들! – rolodex

1

나는 몇 가지 문제를 참조하십시오

  • 귀하의 JSON 객체가 유효하지 않습니다. 객체의 배열이지만 처음 두 객체는 ​​,으로 분리되지 않고 JSON의 문자열을 따옴표로 묶어야합니다.
  • 자바 스크립트 코드에서 obj.users을 참조하고 있습니다. 객체에 ,이 있어도 사용자가 전혀 없습니다.
+0

의 유효성을 확인하십시오. 내 질문을 업데이트했습니다. 귀하의 의견에 관해서. 그러나 아직도 아무것도. – rolodex

+0

@rolodex 여전히 obj.name이 정의되지 않았습니다 ...'$ .each (obj, function (i, o) {console.log (o.name)})'를 사용하고 json에서 인덱스를 인용하십시오. –

1

obj.name에서 각각을 수행 할 수 없습니다. obj는 배열입니다. 배열에는 "name"이라는 속성이 없으므로 루프를 입력하지 않아도됩니다.

obj [0]부터 obj [obj.length-1]까지 루프 만 통과하면됩니다.

관련 문제