2016-11-30 8 views
-1

に各配列私は、このようないくつかのエンコードされたJSONがあります。デコードJSON PHP

title || link 
root || one 
branch || two 
leaf || three 

私はこれを試してみましたが、動作しません:

[ 
    {"title":"root", "link":"one"}, 
    {"title":"branch", "link":"two"}, 
    {"title":"leaf", "link":"three"} 
] 

を私はJSONのようなPHPの出力にすることをデコードしたいです:

$list = json_decode($json); 
foreach ($list as $list => $value) { 
    echo $list->title; 
    echo $list->link; 
} 

答えて

0

あなたがしたことは、キーと値を別々にループし、stdClassのキーから値を取得しようとするよりも、オブジェクトとしてループすることです。私もjson_decode($json_str, true)を使ってstdClassではなく配列として結果を得ました。

$json_str = '[{"title":"root","link":"one"},{"title":"branch","link":"two"},{"title":"leaf","link":"three"}]'; 
$json_decoded = json_decode($json_str, true); 
foreach($json_decoded as $object) 
{ 
    echo $object['title']; 
    echo $object['link']; 
} 
+0

で許可されていませんが、私は、このリンクhttpをエンコードしてみました:/ /penanggulangankrisis.kemkes.go.id/ipaddress/api_ip.phpそしてそのforeach引数が無効であると言います 私はjson_decode(file_get_contents($ url2)、true)を使用します。 と$ url2 = "http://penanggulangankrisis.kemkes.go.id/ipaddress/api_ip.php"; –

+1

@dennisramli var_dump file_get_contents、結果は何ですか? "ヌル"? – DevNiels

+0

いいえ、結果はnullではありません@DevNiels –

3

foreachループをこれに変更してみてください。

foreach ($list as $key => $value) { 
     echo $value->title." || "; 
     echo $value->link." "; 
     echo nl2br("\n"); 
     } 

ご希望の場合はこちらをご覧ください。

+0

代わりにハードコードされた空間の、あなたは "\ tの" –

+0

"\ tを" 使用することができますが、PHP –

0

コード:

$list = json_decode($json); 
foreach ($list as $item) { 
    echo $item->title . ' || ' . $item->link . '<br>'; 
} 
+0

仲間のプログラマが理解できるように、問題を解決する方法を少し詳しく解説しますか? – Daenarys