2016-08-02 7 views
0

以下のjsonデータをループする各値を出力する必要があります。foreach loop for Json

{ 
    "Name": "xyz", 
    "Address": "abc", 
    "City": "London", 
    "Phone": "123456" 
} 

私が試したことはある:

$DecodedFile = json_decode(file_get_contents("file.json")); 

foreach ($DecodedFile->{$key} as $value) { 
    echo "$value <br>"; 
} 

答えて

0

->{$key}は不要です。

foreach ($DecodedFile as $value) { 
    echo "$value <br>"; 
} 

またはあなたが同様にキーを使用する場合:それはちょうどだ

foreach ($DecodedFile as $key => $value) { 
    echo "$key: $value <br>"; 
} 

あなたjson_decodeした後、あなたはこの$DecodedFile取得:

object(stdClass)[1] 
    public 'Name' => string 'xyz' (length=3) 
    public 'Address' => string 'abc' (length=3) 
    public 'City' => string 'London' (length=6) 
    public 'Phone' => string '123456' (length=6) 

をし、それがobject iteration普通のです。

は、デコードされたオブジェクトから単一の特定のプロパティを取得する場合は、その構文を使用しますが、角括弧は必要ありません。

$key = 'City'; 
echo $DecodedFile->$key; 
0

あなたは少しあなたのforeachをごちゃ混ぜにしました。これに変更してください:

foreach($DecodedFile as $key=>$value)