【问题标题】:Getting JSON file from Google Places API从 Google Places API 获取 JSON 文件
【发布时间】:2012-04-05 05:36:29
【问题描述】:

我正在尝试使用 Places API,我最初尝试使用来自 jQuery 的 $.ajax,但我一直在文件的第一个元素上收到意外的令牌错误。但是我意识到你不能从 Places API 中获取 JSONP。所以下面是它返回的示例,我一辈子都无法将 id 打印到控制台(对于初学者)......有人可能会指出我正确的方向吗?

从 Places 返回的 JSON:

{
   "html_attributions" : [],
   "results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : 33.7862590,
               "lng" : -117.8531270
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png",
         "id" : "5be9a13a28635cf8fd2ef3c62c24d51277a4ba58",
         "name" : "Kimmies Coffee Cup",
         "rating" : 3.30,
         "reference" : "CnRpAAAANKLoOHJ1STFaFavIPjm2bpMDneGTv0AXfixyl-koF7KSK-lQSldk3c01RFJu9Gf62zXnRScte-dkPCBU8KuxCo7AMctfuaIhNkPE8RKENF9HeMlkuEg-Scp97--1VWJvjpNQjc6xRvdXsbf7V8NrSRIQnXjZBKbrSeSg2sTwBosKghoUEFlNDIN5cnVbn5n7aNtwycord-E",
         "types" : [ "restaurant", "food", "establishment" ],
         "vicinity" : "190 S Glassell St # B, Orange"
      }
      ]
}

这就是我正在尝试的,但显然我不能再使用它了......

 $(document).ready(function () {
    $.ajax({
      url: 'https://maps.googleapis.com/maps/api/place/search/json',
      dataType: 'jsonp',
      type: 'GET',
      data: {
        location: '33.787794,-117.853111',
        radius: 100,
        name: 'coffee',
        key: 'KEY_HERE',
        sensor: false,
      },
      success: function(data) {
        console.log(data.results[0].id);
    }
  });
});

任何建议都会很棒,谢谢!

【问题讨论】:

    标签: json jquery jsonp google-places-api


    【解决方案1】:

    jQuery 有一个 parseJSON 方法,可以从 JSON 创建一个 javascript 对象。

    一旦你有了这个对象,那么

    obj.results 将返回结果数组。

    results[0].id 会给你第一个结果的 id。

    【讨论】:

    • 我看到了,我不确定它是否适用于我的情况......很高兴知道它适用!我不完全确定如何将数据(即位置、半径、名称、键、传感器)添加到该函数。那部分去哪里了?谢谢!
    【解决方案2】:

    当你使用数据类型 json 而不是 jsonp 的结果是什么?

    【讨论】:

    【解决方案3】:

    您不需要 for 循环来打印 id。您可以删除它然后尝试。另外,不确定什么是“myResult”。它似乎没有在任何地方定义。

    【讨论】:

    • 对不起,我复制粘贴了一个我已经更改了一半的函数...myResult 应该是传入的参数,我将编辑我的帖子。在没有循环的情况下我得到了相同的结果,我只是用 console.log 命令替换了我在循环中所做的事情(生成表)以简化它并隔离问题。
    • 我的建议是使用 JS 调试器准确查看您在成功函数中作为“数据”获得的内容,然后相应地访问数据。
    • 我从来没有真正使用过 JS 调试器,你推荐一个用于 Chrome 的吗?
    • Chrome 有一个内置的调试器。只需按 F12。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多