2011-10-05 113 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); 
});