首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP解析Google Elevation结果

使用PHP解析Google Elevation结果
EN

Stack Overflow用户
提问于 2011-12-17 05:05:12
回答 2查看 1K关注 0票数 3

我是第一次接触JSON和解析。当我从Google elevation API请求一个高程时,我得到了以下结果。

代码语言:javascript
复制
{
  "status": "OK",
  "results": [ {
    "location": {
      "lat": 39.7391536,
      "lng": -104.9847034
    },
    "elevation": 1608.8402100
  } ]
}

在解析时,我不知道如何使用json_decode结果有效地引用高程。我的简短代码如下:

代码语言:javascript
复制
$json_string = file_get_contents($url);
$parsed_json = json_decode($json_string);
$geoElevation = $parsed_json->{'elevation'};

谁能告诉我为什么我不能使用上面的值访问"elevation“值?

EN

回答 2

Stack Overflow用户

发布于 2011-12-17 05:13:38

试试这个:

代码语言:javascript
复制
$json_string = file_get_contents($url);
$parsed_json = json_decode($json_string);

echo $parsed_json->results[0]->elevation;

或者,如果您更喜欢使用数组:

代码语言:javascript
复制
$json_string = file_get_contents($url);
$parsed_json = json_decode($json_string, TRUE);

echo $parsed_json['results'][0]['elevation'];

第二个论点:

如果为TRUE,则返回的对象将转换为关联数组。来自json_encode手册

票数 4
EN

Stack Overflow用户

发布于 2011-12-17 05:12:12

您应该使用print_r($parsed_json)来更好地可视化您的数据结构:

代码语言:javascript
复制
$parsed_json
(
    [status] => OK
    [results] => Array
        (
            [0] => Array
                (
                    [location] => Array
                        (
                            [lat] => 39.739153600000001631542545510456
                            [lng] => -104.98470340000000078362063504755
                        )    
                    [elevation] => 1608.8402100000000700674718245864
                )
        )
)

这是一个数组,您可以使用json_decode($json_string, TRUE);获得它。这使得遍历条目变得更容易。

在您的情况下,您需要:

代码语言:javascript
复制
 print $parsed_json["results"][0]["elevation"];

通常情况下,您会希望在数字级别上执行foreach。但是,如果您只期望一个结果,那么使用[0]是非常好的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8540127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档