2012-10-11 95 views
0

我想通過這個樣子:循環在JSON與jQuery

[ 
    {"leadID":"1","leadName":"Steve"}, 
    {"leadID":"2","leadName":"Bob"}, 
    {"leadID":"3","leadName":"Bill"}, 
    {"leadID":"4","leadName":"Jim"}, 
    {"leadID":"5","leadName":"James"}, 
    {"leadID":"6","leadName":"John"}, 
    {"leadID":"7","leadName":"Eric"}, 
    {"leadID":"8","leadName":"Tony"}, 
    {"leadID":"9","leadName":"Jason"}, 
    {"leadID":"10","leadName":"Paul"} 

] 

我試圖使用$。每做,但我不能得到它的權利。這是一個測試控制檯:

$.each(JSON, function(k, v) { 

    console.log(v[0]); 

}); 

我相信我只是沒有解析的JSON的權利,但我無法弄清楚。最終我需要將數據附加到選擇輸入的選項。

對此的任何幫助將是偉大的。

謝謝!

回答

4

Yo如果尚未解析,則需要先解析JSON。

有些瀏覽器有這個本地:

jsonobject = JSON.parse(jsonstring) 

如果沒有,你可以使用jQuery

jsonobject = $.parseJSON(jsonstring) 

然後,當它是一個對象,你可以通過它循環使用$。每個

$.each(jsonobject, function(x,v) { 
    console.log(v.leadID); 
    console.log(v.leadName); 
}); 
+0

這樣做了。你說得對,我需要先解析JSON。它現在工作很完美。謝謝! – Sequenzia

+0

酷:)如果這是一個網頁,你應該使用jQuery $ .parseJSON。我不認爲IE瀏覽器有JSON庫。乾杯。 – Aktee

+0

是的,我正在用jQuery來做。再次感謝。 – Sequenzia

1

如果使用$。每次,它應該是這樣的:

$.each(myJSON, function(key, value){ 
    console.log(value); 
    console.log(value['leadID']); 
}); 

你不需要做值[0]。這裏是我常這樣做:

for (var tk in myJSON) 
{ 
    console.log(myJSON[tk]); 
    console.log(myJSON[tk]['leadID']); 
} 

http://api.jquery.com/each/

+0

感謝您的幫助,但我看起來像我的問題是因爲我沒有首先解析JSON。謝謝 – Sequenzia

0

在你的榜樣k會遍歷你數組的索引(0..9)和v會遍歷對象..

所以例如你可以做(​​註釋參考第一次迭代):

$.each(JSON, function(k, v) { 

    console.log(k); // 0 
    console.log(v); // {"leadID":"1","leadName":"Steve"} 
    console.log(v['leadID']); // "1" 
    console.log(v['leadName']); // "Steve" 

}); 
+0

感謝您的幫助,但我看起來像我的問題是因爲我沒有首先解析JSON。謝謝 – Sequenzia