douwen7516 2015-12-31 18:32
浏览 44
已采纳

使用PHP解码JSON

Forgive me for the simplicity of this question but I am brand new to working with API's and JSON. But I have a JSON file and I want to print out the "text" value of "duration". How can I do that?

{
   "destination_addresses" : [ "San Francisco, CA, USA" ],
   "origin_addresses" : [ "Seattle, WA, USA" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "808 mi",
                  "value" : 1299998
               },
               "duration" : {
                  "text" : "12 hours 27 mins",
                  "value" : 44846
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

I am trying to do it using:

$url = 'https://maps.googleapis.com/maps/......'
$content = file_get_contents($url);
$json = json_decode($content, true);

echo $json['rows']['elements']['duration']['text'];

Many thanks!

  • 写回答

1条回答 默认 最新

  • duanbu1998 2015-12-31 18:35
    关注

    You should do it like this:

    echo $json['rows'][0]['elements'][0]['duration']['text'];
    

    Output:

    12 hours 27 mins

    Notice that in the json, you have what marks new arrays [, so you forgot to use [SOME_NUMBER].


    This is the structure (from print_r($json);):
    Array
    (
        [destination_addresses] => Array
            (
                [0] => San Francisco, CA, USA
            )
    
        [origin_addresses] => Array
            (
                [0] => Seattle, WA, USA
            )
    
        [rows] => Array
            (
                [0] => Array
                    (
                        [elements] => Array
                            (
                                [0] => Array
                                    (
                                        [distance] => Array
                                            (
                                                [text] => 808 mi
                                                [value] => 1299998
                                            )
    
                                        [duration] => Array
                                            (
                                                [text] => 12 hours 27 mins
                                                [value] => 44846
                                            )
    
                                        [status] => OK
                                    )
    
                            )
    
                    )
    
            )
    
        [status] => OK
    )
    

    You can also use it as object. It would be like this:

    $json = json_decode($content); // without true
    echo $json->rows[0]->elements[0]->duration->text;
    

    Output:

    12 hours 27 mins

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下: