2016-11-30 70 views
-1

我有一些編碼的JSON這樣的:解碼JSON每個數組到PHP

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

我想這解碼JSON到PHP輸出,如:

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

我試過,但不起作用:

$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); and $ url2 =「http://penanggulangankrisis.kemkes.go.id/ipaddress/api_ip.php」; –

+1

@dennisramli var_dump file_get_contents,結果是什麼? 「空值」? – DevNiels

+0

不,結果不爲空@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