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

UPDATE 2

これは、PHP側はあなたが返されるJSON内のすべてのキーをループ

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

ような何かを行うことができます

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

は、あなたがそれを使用して、各JSONオブジェクトの属性にアクセスすることができますが、名前です。例えば'JSONObject.name'は' {'name': 'foo'} ' –

答えて

72

をどのように動作するかです値を出力します。ネストされた構造を持っている場合は、あなたがネストされたオブジェクトをループに持っているかどうかを判断するために

typeof result[k] === "object" 

を使用する必要があります。ほとんどのAPI私が使ったAPIは、返されるものの構造を知っているので、これは不要です。しかし、私は、この期待がすべての場合にうまくいかない可能性があると思います。

+0

を保持するJSONObjectの中の属性を取得するために、それを角括弧で囲むことになります。編集:あなたはそれを修正しました。 –

+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); 
});