2011-09-16 134 views
0

如何使用的foreach解析JSON類型 -jQuery的 - JSON解析

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"}

我會得到的文本 -

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

如果我有一個數據集合。我怎樣才能只讀取網址? – 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