Google Place API - jQuery JSON Persing of received Data

时间:2015-02-06 15:10:12

标签: javascript jquery json jsonp google-places-api

我正在使用Google Place API获取最近位置的建议。

我已设法从服务器获取数据。

我收到服务器的回复 -

{
   "predictions" : [
      {
         "description" : "Australia",
         "id" : "3ba963f8de67dc16df0a8de60e46418338a3181a",
         "matched_substrings" : [
            {
               "length" : 1,
               "offset" : 0
            }
         ],
         "place_id" : "ChIJ38WHZwf9KysRUhNblaFnglM",
         "reference" : "CjQhAAAAlf04PlAgVJSzXXBUwZc0JGNjk5I9hsWHkvWwfuY_U4bkR3hm2lC4EN6fV4KOXr9PEhD5vhvmJOucMwDiwRaYJ0RAGhQofmdPwvnV4qHFefKAu0Anw110WQ",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Australia"
            }
         ],
         "types" : [ "country", "political", "geocode" ]
      },
      {
         "description" : "Argentina",
         "id" : "dcaa0dffd352dfaaa3dc73dd1dbf3153708637ef",
         "matched_substrings" : [
            {
               "length" : 1,
               "offset" : 0
            }
         ],
         "place_id" : "ChIJZ8b99fXKvJURqA_wKpl3Lz0",
         "reference" : "CjQhAAAAO1RnJcq4Dky5uLQFHCULfP6VzbklXYCiR_DDuJMJxf5wFbTXVnHM7bn7ZSlxsR7IEhC_HlGxn8JeuC2h86S2EIpSGhRddclDM07Acre3NSiTWJoClMNtKQ",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Argentina"
            }
         ],
         "types" : [ "country", "political", "geocode" ]
      },
      {
         "description" : "Austria",
         "id" : "e16f8e9f2a60f60a0881c41488ff3869e4f938a4",
         "matched_substrings" : [
            {
               "length" : 1,
               "offset" : 0
            }
         ],
         "place_id" : "ChIJfyqdJZsHbUcRr8Hk3XvUEhA",
         "reference" : "CiQfAAAAXX_lF6oxms4MgmajAkQabO3drGaCf04EHArvaGV3UTISEFulfBYy0rmrSxPIb1JLY_0aFJ2UqN170fR7OjOGAF3v3vZqO21i",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Austria"
            }
         ],
         "types" : [ "country", "political", "geocode" ]
      }
   ],
   "status" : "OK"
}

我通过使用jQuery解析来获取数据的方法是 -

$.ajax(
{
    url: Auto_Complete_Link, 
    type: "GET",   
    dataType: 'jsonp',
    cache: false,
    crossDomain: true,
    /*data: JSON.stringify(somejson),*/
    success: function (response)
    {
        $.each(response, function(i, field)
        {
            console.log(field + " <=> "+ i);
        });
    },
    error: function (xhr, status)
    {
        console.error("not connecting to google server");
    }
});

所以代码的解析部分就像它 -

$.each(response, function(i, field)
{
    console.log(field + " <=> "+ i);
});

但我收到一个名为

的错误
  

Uncaught SyntaxError:意外的令牌:

错误就像JSON一样 -

22

有人可以帮忙解决这个问题吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

尝试将您的JavaScript更改为:

$.ajax(
{
    url: Auto_Complete_Link, 
    type: "GET",   
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    cache: false,
    crossDomain: true,
    success: function (response)
    {
        $.each(response, function(i, field)
        {
            console.log(field + " <=> "+ i);
        });
    },
    error: function (xhr, status)
    {
        console.error("not connecting to google server");
    }
});