【问题标题】:Trying to parse json code from console in Laravel试图从 Laravel 的控制台解析 json 代码
【发布时间】:2019-05-07 17:06:22
【问题描述】:

我从数据库中获取了 4 个地址,我使用了地理编码 API 并将其转换为 json。

@foreach($estates as $est)

    var result = $.ajax({
            url: 'https://maps.googleapis.com/maps/api/geocode/json?address={{$est->address}}&key={{env('GOOGLE_MAPS_API')}}'
        })

    result.done(function(data) {
        console.log(data);

    });

@endforeach

但是现在我如何才能从控制台解析 lat/lng?

【问题讨论】:

  • 为什么要在 foreach 循环中传递脚本?
  • 因为数据来自控制器,所以我立即通过它来获取地理编码@AmmarHussain 还有其他选择吗?
  • 为什么要在脚本标签中使用 api?

标签: javascript jquery json laravel


【解决方案1】:

使用 ajax get 代替 <script> 标记,如下所示:

@foreach($estates as $est)

    var result = $.ajax({
        url: 'https://maps.googleapis.com/maps/api/geocode/json?address={{$est->address}}&key={{env('GOOGLE_MAPS_API')}}'
    })

    result.done(function(data) {

        {{ get required data and save to somewhere }}

    });

@endforeach

您可以在此处获取有关如何执行此操作的更多信息:

http://api.jquery.com/jquery.ajax/

【讨论】:

  • 谢谢你的回答伙伴。但有了这个,我在控制台中什么也得不到。
  • 将此行 {{ get required data and save to somewhere }} 更改为 console.log(data);
  • 好的,谢谢 :) 但我有两个问题,我只得到第一个问题,如果使用 foreach,我什么也得不到。第二个问题是经纬度在这些里面我怎样才能得到这些? imgur.com/a/jzcGpBU如果你能帮我解决这个问题真的很感激!
  • 我已经添加了,但它显示“尝试获取非对象的属性”错误。
  • 我解决了最后一个问题。谢谢你的朋友在代码方面给了我很大的帮助!
【解决方案2】:

您没有调用 api。一种方法是使用 get_file_contents。这是一个示例代码。

@foreach($estates as $est)  

    $url = "https://maps.googleapis.com/maps/api/geocode/json?address={{$est->address}}&key={{env('GOOGLE_MAPS_API')}}";

    $resp_json = file_get_contents($url);

    $resp = json_decode($resp_json, true);

    if($resp['status']=='OK'){
        // Get Latitude and Longitude from resp variable
    }

@endforeach 

编辑 1

从 JSON 响应中获取 Lat 和 Lng。

if($resp['status']=='OK'){

    $lat = isset($resp['results'][0]['geometry']['location']['lat']) ? $resp['results'][0]['geometry']['location']['lat'] : "";
    $lng = isset($resp['results'][0]['geometry']['location']['lng']) ? $resp['results'][0]['geometry']['location']['lng'] : "";

}

【讨论】:

  • 感谢您。我更新了问题的代码。如何获取该位置的 lat 和 lng?
  • 我已经更新了代码。请看一下,如果它满足您的需要,请接受我的回答。谢谢。
  • 我已经解决了问题,但感谢您帮助我,我为您投票。
猜你喜欢
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 2017-02-27
相关资源
最近更新 更多