2016-08-11 22 views
2

各Jsonオブジェクトパラメータをどのように反復処理できますか?Symfony:jsonオブジェクトから配列への反復

入力としてJsonオブジェクトを受け取ります。このオブジェクトを配列に変換するか、各パラメータを繰り返し処理するにはどうすればよいですか?

例:私のようにJSONオブジェクトを受け取るので、私は、配列にJSONファイルをデコードすることはできませんよコントローラで

//$requestData - decoded json content 
foreach ($requestData->data as $param){ 
     //do smth with each param 
} 

:コントローラで

{ 
    "firstName": "Jane", 
    "lastName": "Dow", 
    "aboutMe": "Web developer" 
} 

はそれのような何かを行うことが可能ですすでに入力されています。

+0

あなたが属性を反復処理したい、このようなPHPオブジェクトを反復処理することができますか?だからfirstnameは配列の最初のeleement、lastnameはsecondなどですか? – Matteo

+0

配列にキャストすると、 '$ array =(array)$ requestData-> data;'のように動作します。 – qooplmao

答えて

4

json_decode()を使用して、JSON Stringを配列またはオブジェクトにデコードすることができます。このように、

$json_string="{ "firstName": "Jane", "lastName": "Dow", "aboutMe": "Web developer" }"; 
$json_array=json_decode($json_string,true); 

$json_arrayは配列になりますと、あなたは通常、あなたがPHP配列で行うと同じように、それを反復処理することができます。

json_decode()はデフォルトでfalseである、ブールように、第2のパラメータを受け付けます。 trueの場合json_decode()は配列 を返します。それ以外の場合はオブジェクトを返します。

参考:http://php.net/manual/en/function.json-decode.php


あなたは

foreach ($requestData as $key => $value) { 
    echo $key." =>"; 
    var_dump($value); 
} 
+0

それはトリックです、私は入力としてJsonファイルを受け取っていない、私はデコードされたJsonオブジェクトを受信して​​います。だから、ファイルを配列にデコードできない – blahblah

+0

変数にJSON文字列がありますか? –

+0

いいえ、jsonオブジェクトのみです。 jsonの文字列にエンコードして配列にデコードするのはいいですか? – blahblah

関連する問題