2016-11-30 131 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