2011-10-05 117 views
36

我的腳本從php服務器端腳本獲取了一些數組。針對JSON數組的foreach,語法

result = jQuery.parseJSON(result); 

現在我想檢查數組中的每個變量。

if (result.a!='') { something.... } 
if (result.b!='') { something.... } 
.... 

有沒有什麼更好的方法使它像PHP的'foreach',''while'或smth?

UPDATE

此代碼(感謝hvgotcodes)給我的變量值的數組裏面,但我怎麼能得到的變量也的名字?

for(var k in result) { 
    alert(result[k]); 
} 

更新2

這是方如何PHP的作品

$json = json_encode(array("a" => "test", "b" => "test", "c" => "test", "d" => "test")); 
+0

如果我沒有記錯的話,你可以用它來訪問每個JSON對象的屬性的名稱,就像您的屬性。例如'JSONObject.name'來獲取JSONObject中包含'{'name':'foo'}'' –

回答

72

你可以做這樣的事情

for(var k in result) { 
    console.log(k, result[k]); 
} 

它遍歷在返回的JSON所有鍵並打印這些值。但是,如果您有嵌套結構,則需要使用

typeof result[k] === "object" 

以確定是否必須遍歷嵌套對象。我使用的大多數API都是開發人員知道返回的結構,所以這是不必要的。但是,我想這種期望對所有情況都是不利的。

+0

的屬性,你將要對它進行方括號。編輯:你修好了。 –

+0

檢查您的代碼 –

+0

是的我其實通過在控制檯嘗試確保。 ;) – hvgotcodes

8

當然,你可以使用JS的foreach。

for (var k in result) { 
    something(result[k]) 
} 
26

試試這個:

$.each(result,function(index, value){ 
    console.log('My array has at position ' + index + ', this value: ' + value); 
});