无法从JSON获取数据

时间:2013-11-07 10:56:29

标签: javascript jquery json google-maps-api-3 jquery-gmap3

我正在使用此JSON链接访问数据,如果我将鼠标悬停在特定标记上,我想访问地名!

$.getJSON('http://anyorigin.com/get?url=https%3A//maps.googleapis.com/maps/api/place/nearbysearch/json%3Flocation%3D-33.8670522%2C151.1957362%26radius%3D5000%26types%3Dfood%26name%3Dharbour%26sensor%3Dfalse%26key%3DAIzaSyAYMqH361IS1S9SA4atjBPCDlLpJ4mr6Sw&callback=?', function (data) {
    var responseData = data.contents;
});

events: {
    mouseover: function (marker, event, context) {
        console.log(responseData.results[this].name)
    }
},

3 个答案:

答案 0 :(得分:0)

代码 this 代表moverover事件。所以问题是还有responseData作为全局变量。

<强>更新

这是一个简单的方法

var responseData = data.contents;
    var res = responseData.results;
    for (var i = 0; i < res.length; i++) {
        console.log(res[i].name)
    }

JSFiddle

答案 1 :(得分:0)

这里你可以像这样使用循环

      $.each(responseData , function (index, value) {
            console.log(value.name)
      });

答案 2 :(得分:0)

假设响应数据的返回类型是有效的,我怀疑使用结果[this]将导致连贯的数据。

您应该检查responseData.results包含的内容,以查看要显示的数据(添加'debugger;'并检查responseData.results)。

var responseData;
$.getJSON('http://...', function (data) 
{
    responseData = data.contents;
});

events: 
{
    mouseover: function (marker, event, context) 
    {
        debugger; // remove after inspect responseData and extract the worthy data
        console.log(responseData.results)
    }
},