以(Json 格式)解析来自 Google Place api 响应的数据

Posted

技术标签:

【中文标题】以(Json 格式)解析来自 Google Place api 响应的数据【英文标题】:Parse the data from Google Place api response in (Json format) 【发布时间】:2013-04-20 13:27:39 【问题描述】:

我想如何将 google place api 提供的响应中的酒店名称和位置存储在 php 数组中。如果我的搜索字符串是 restaurant in New York

api 的响应是 json 格式。

我发送搜索请求的脚本是:

<?php
    if(isset($_GET['text']))
    
        if(!empty($_GET['text']))
        
            $search_text=strip_tags($_GET['text']);

            $hostname = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=$search_text&sensor=true&key=AIzaSyDVdJtIAvhmHE7e2zoxA_Y9qWRpp6eE2o8"; 


            // read the post from PayPal system and add 'cmd'


            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "$hostname");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

            $res = curl_exec($ch);
            curl_close($ch);

            if(!$res)
            
                // error log
                echo'Unable to find results.';
             else     
                **// ALL output printing code goes down here**
                //$res=json_decode($res);
                //var_dump(json_decode($res));
                $obj=var_dump(json_decode($res, true));
                print_r($obj['"results']);




                
         else 
            echo'<h4><font color="red">Please enter the text to search.</font></h4>';
            
    
?>

嗯,上面代码的输出是json格式的。但我需要从 json 输出中检索餐厅的名称及其位置。

所以,请建议我一种提取确切输出的方法。

【问题讨论】:

作为一个小注解,尝试使用 file_get_contents() 而不是 CURL。这要容易得多。示例:$results = json_decode(file_get_contents($hostname), TRUE); 【参考方案1】:

正如我所见,结果键包含包含您需要的数据的数组。 只需执行以下操作:

$jsonContent = json_decode($res, true);

foreach ($jsonContent['results'] as $result) 

    // now you have the $result array that contains the location of the place
    // and the name ($result['formatted_address'], $result['name']) and other data.


我希望你从这一点上知道该怎么做。

【讨论】:

以上是关于以(Json 格式)解析来自 Google Place api 响应的数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Javascript 解析 JSON。来自 Laravel 的 JSON

DataTables 警告:无法解析来自服务器的 JSON 数据。这是由 JSON 格式错误引起的

无法解析来自服务器的 JSON 数据

无法解析来自谷歌的 json 响应

如何以正确的方式在 IOS SWIFT 3 中解析 Google 距离矩阵 API JSON

如何解析来自 Bigquery 结果的 json 响应?