2011-09-16 3 views
0

foreach는 json 형식을 구문 분석하는 방법 -Jquery - json parse

getData: function(id, dataid) 
    { 
     $.post('Action/Load.php',{ 
      id: id 
     }, function(data) { 

      $(dataid).html(data); 
     }); 
    } 

{"file":"1","text":"Hello world","name":"Jenan","id":"1","url":"url"}{"file":"1","text":"Hello world","name":"Jenan","id":"1","url":"url"}{"file":"1","text":"Hello world","name":"Jenan","id":"1","url":"url"}

1 - Hello World - Jenan - 1 - url. 

조언을 제공해 주셔서 감사합니다.

답변

1

$.each() 함수는 배열 및 jQuery 객체에서만 작동합니다.

여기에서 data은 일반적인 개체가 아닙니다.

그래서, 당신의 JSON에서 이런 식으로 데이터를 얻을 :

getData: function(id, dataid) 
    { 
     $.post('Action/Load.php',{ 
      id: id 
     }, function(data) { 
      $(dataid).html(data.file +' - '+ data.text +' - '+ data.name +' - '+ data.id +' - '+ data.url); 
     }); 
    } 

편집 : 당신은 다음에 같은 배열에서 이러한 개체 중 일부가있는 경우 :

[{"file":"1","text":"Hello world","name":"Jenan","id":"1","url":"url"},{"file":"1","text":"Hello world","name":"Jenan","id":"1","url":"url"},{"file":"1","text":"Hello world","name":"Jenan","id":"1","url":"url"}] 

이렇게 하시겠습니까?

getData: function(id, dataid) 
    { 
     $.post('Action/Load.php',{ 
      id: id 
     }, function(data) { 
      $(dataid).html(''); 
      $.each(data, function(key, value){ 
       $(dataid).append(value.file +' - '+ value.text +' - '+ value.name +' - '+ value.id +' - '+ value.url +'<br/>'); 
      }); 
     }); 
    } 
+0

그리고 데이터가 있다면. URL 만 읽으려면 어떻게해야합니까? – Jenan

+0

데이터 컬렉션의 의미는 무엇입니까? 당신이 염두에두고있는 것을 보여주는 Json의 표현을 보여주세요. – Pioul

+0

나는 당신의 예제를 시험해 본 결과입니다 - undefined - undefined - undefined - undefined - undefined – Jenan

2

for...in 뜻 루프 :

var output = []; 
for(var key in data) { 
    if (data.hasOwnProperty(key)) { 
     output.push(data[key]) 
    } 
} 

alert(output.join(' - ')); 


EDIT

data.url; // the value of url, which happens to be url in this example 
// or 
data['url'] 

hasOwnProperty 키 오브젝트를 직접 등록되는 것을 보장한다.

+0

어떻게하면 url 값을 읽을 필요가 있습니까? – Jenan

+0

+1은 Array.join을 제안합니다. 문자열 연결보다 간단하고 효율적입니다. – tjameson