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 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动