2011-02-25 6 views
1

임 이것은 초보자 질문 인 경우 죄송하지만이 JSON 문자열을 읽는 방법에 대해 혼란 받고 있어요 :이 JSON을 읽는 방법?

{ 
    "VF001JV018":[ 
     { 
     "kode_question":"VF001JV018", 
     "kode_option":1, 
     "kode_option_tipe":"PF006", 
     "nama_option":"Pilihan 1", 
     "reference_db":null, 
     "reference_table":null, 
     "reference_field":null, 
     "required_value":0, 
     "reference_pk":null, 
     "status":1 
     }, 
     { 
     "kode_question":"VF001JV018", 
     "kode_option":4, 
     "kode_option_tipe":"PF006", 
     "nama_option":"Pilihan 4", 
     "reference_db":null, 
     "reference_table":null, 
     "reference_field":null, 
     "required_value":0, 
     "reference_pk":null, 
     "status":1 
     }, 
     { 
     "kode_question":"VF001JV018", 
     "kode_option":5, 
     "kode_option_tipe":"PF006", 
     "nama_option":"Lainnya", 
     "reference_db":null, 
     "reference_table":null, 
     "reference_field":null, 
     "required_value":1, 
     "reference_pk":null, 
     "status":1 
     } 
    ], 
    "VF001JV020":[ 
     { 
     "kode_question":"VF001JV020", 
     "kode_option":1, 
     "kode_option_tipe":"PF001", 
     "nama_option":"Kode Toko", 
     "reference_db":"crm", 
     "reference_table":"customer", 
     "reference_field":"kode_customer", 
     "required_value":0, 
     "reference_pk":"   ", 
     "status":1 
     } 
    ] 
} 

방법 목록에서 데이터를 표시 할 수 있습니까? 예를 들면 :

<ul> 
<li><strong>VF001JV018</strong></li> 
<li>VF001JV018-1</li> 
<li>VF001JV018-4</li> 
<li>VF001JV018-5</li> 
<li><strong>VF001JV020</strong></li> 
<li>VF001JV020-1</li> 
</ul> 

나는 루프 각 기능을 각 요소에 여전히

$.getJSON('data.json', null, function(response){ 
    var echo = '<ul>'; 
    $(response).each(function(k,v){ 
     echo += '<li><strong>'+k+'</strong> : '+v+'</li>'; 
    }); 
    echo += '</ul>'; 
    $('#here').html(echo); 
}); 

답변

2

response는 HTML 문자열이나 DOM 요소 아닌 행운을 jQuery를 사용합니다. 이런 식으로 jQuery에 전달할 수 없습니다. 위에 루프

사용 jQuery.each : v 배열이 다시 그대로

$.each(response, function(k, v) { 
    echo += '<li><strong>'+k+'</strong></li>'; 
}); 

당신은, v으로 문자열을 연결할 수 없습니다. 루프를 반복하고 인쇄 할 특정 정보에 액세스해야합니다 (예 : v[i].status.

+0

해결책 주셔서 감사합니다. 나는 한 가지 더 문제가있다. v는 객체입니다. v에 많은 오브젝트가 있기 때문에 v [0] .status를 사용하여 액세스합니다. 각각을 다시 사용해야합니까? jQuery.each를 다시 사용하면 루프 내부에서 루프가 발생하기 때문에 문제가 발생합니다. – Permana

+0

@Permana : 오, 맞습니다. 배열 (업데이트 된 게시물)을 놓친 것입니다. 아니, 다시 사용할 수 있습니다. 일반 for 루프를 사용할 수도 있습니다. 이것은 당신에게 달려 있습니다. –

+0

도움을 주셔서 대단히 감사드립니다. 나는 jQuery.each를 다시 사용할 것이다. 내가 루프 내부에서 Ajax 요청을 수행 할 때 이전에 오류가 발생했기 때문에 루프 내부에서 루프를 사용하면 오류가 발생할 수 있습니다. 다시 한번 감사드립니다. – Permana