我遇到了问题而且找不到错误。它不能是语法错误。
基本上,即使URL输出JSON,以下输出也没有。
$jsonurl = 'http://www.geopostcode.org.uk/api/SE92EQ.json';
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_decode($json);
foreach ( $json_output->wgs84 as $results )
{
echo "{$results->lat}<br />";
echo "{$results->lon}<br />";
帮我找到错误。 wgs84是父母,但是,无法找到lat和lon。
谢谢。
编辑:$ json_output的打印位于此处 - http://pastebin.com/ZQRxhjRJ
答案 0 :(得分:1)
当您print_r($json_output);
(由h2ooooooo建议)时,您会看到以下部分
[wgs84] => stdClass Object
(
[lat] => 51.446973
[lon] => 0.078981
)
这意味着wgs84
是一个对象,而不是一个数组。那你为什么要迭代呢?
echo $json_output->wgs84->lat."<br />";
echo $json_output->wgs84->lon."<br />";
et voila。
答案 1 :(得分:0)
只需在true
函数中添加第二个参数json_decode()
即可。这将返回一个数组而不是一个对象。
您的代码应如下所示:
$jsonurl = 'http://www.geopostcode.org.uk/api/SE92EQ.json';
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_decode($json, true);
foreach ( $json_output['wgs84'] as $results ) {
echo "{$results['lat']}<br />";
echo "{$results['lon']}<br />";
}