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 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计