【问题标题】:Unable to get data from JSON无法从 JSON 获取数据
【发布时间】:2013-11-18 23:46:50
【问题描述】:

我现在正在使用这个 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)
    }
},

【问题讨论】:

  • 在脚本中全局声明“var responseData”,然后尝试
  • 是的,我仍然没有工作:(!如果我去 responseData.results[0].name 那么我得到了我的结果!在结果数组中传递数据有问题
  • 对响应数据使用 each 循环
  • @SoftwareNerd:你能帮我看看如何在我的代码中使用它!即在此段中 console.log(responseData.results[this].name)

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


【解决方案1】:

这里的代码 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

【讨论】:

  • 你能帮我看看如何在我的代码中使用它!即在此段中 console.log(responseData.results[this].name)
  • 是的,如果我通过 for 循环传递名称,我可以获得名称,但我的问题是,如果我将鼠标悬停在任何标记上,则必须显示存储在 JSON 中的特定标记的名称!
  • @user2889942 检查这个jsfiddle.net/Gmr4p/1 你需要的是一些索引号。你甚至可以使用数据属性
  • 在我的控制台中,出现 typeerror:res[parseInt($(this).text())].name is undefined
  • @user2889942 你肯定会得到未定义的。原因是你没有像我在小提琴中提到的那样使用。您有脚本生成的标记。不可以,尝试使用数据属性
【解决方案2】:

假设响应数据的返回类型是有效的,我怀疑使用 results[this] 会导致数据一致。

您应该检查 responseData.results 包含的内容以查看要显示的数据(添加“调试器;”并检查 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)
    }
},

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多