我是第一次接触JSON和解析。当我从Google elevation API请求一个高程时,我得到了以下结果。
{
"status": "OK",
"results": [ {
"location": {
"lat": 39.7391536,
"lng": -104.9847034
},
"elevation": 1608.8402100
} ]
}在解析时,我不知道如何使用json_decode结果有效地引用高程。我的简短代码如下:
$json_string = file_get_contents($url);
$parsed_json = json_decode($json_string);
$geoElevation = $parsed_json->{'elevation'};谁能告诉我为什么我不能使用上面的值访问"elevation“值?
发布于 2011-12-17 05:13:38
试试这个:
$json_string = file_get_contents($url);
$parsed_json = json_decode($json_string);
echo $parsed_json->results[0]->elevation;或者,如果您更喜欢使用数组:
$json_string = file_get_contents($url);
$parsed_json = json_decode($json_string, TRUE);
echo $parsed_json['results'][0]['elevation'];第二个论点:
如果为TRUE,则返回的对象将转换为关联数组。来自json_encode手册
发布于 2011-12-17 05:12:12
您应该使用print_r($parsed_json)来更好地可视化您的数据结构:
$parsed_json
(
[status] => OK
[results] => Array
(
[0] => Array
(
[location] => Array
(
[lat] => 39.739153600000001631542545510456
[lng] => -104.98470340000000078362063504755
)
[elevation] => 1608.8402100000000700674718245864
)
)
)这是一个数组,您可以使用json_decode($json_string, TRUE);获得它。这使得遍历条目变得更容易。
在您的情况下,您需要:
print $parsed_json["results"][0]["elevation"];通常情况下,您会希望在数字级别上执行foreach。但是,如果您只期望一个结果,那么使用[0]是非常好的。
https://stackoverflow.com/questions/8540127
复制相似问题