Javascript JSON中的URL返回为未定义

Javascript JSON中的URL返回为未定义,javascript,jquery,json,javascript-objects,Javascript,Jquery,Json,Javascript Objects,我试图循环使用一些JSON,但一旦它到达url的值,它们就会返回为未定义。下面是我的JS的一个简化示例 $.getJSON("https:../houston-locations.js", function(data){ $.each(data, function(i, data){ $("ul.mapList").append( '<li id="store-' + data.restaurant + '">'+ '<div

我试图循环使用一些JSON,但一旦它到达url的值,它们就会返回为未定义。下面是我的JS的一个简化示例

$.getJSON("https:../houston-locations.js", function(data){
  $.each(data, function(i, data){
      $("ul.mapList").append(
        '<li id="store-' + data.restaurant + '">'+
          '<div class="singleLocation">' +
            '<a href="' + data.directions + '" target="_blank"><button class="directions">DIRECTIONS</button></a>' +
            '<a href="' + data.url + '">Restaurant Details</a>' +
          '</div>' +
        '</div></li>'
      )
  })
});
最后的两个键“directions”和“url”是唯一返回为未定义的键。我做错了什么?

问题在于:

$.getJSON("https:../houston-locations.js", function(data){
    $.each(data, function(i, data) {
您在<代码>函数(i,data)< /代码>中改写变量<代码>数据< /代码>,考虑将其更改为<代码>值<代码>或其他内容。

使用此代码:

$.getJSON( "ajax/ejemplo.json", function( data ) { var items = []; $.each( data, function( key, val ) { items.push( "" + val + "" ); }); $( "", { "class": "my-new-list", html: items.join( "" ) }).appendTo( "body" ); }); $.getJSON(“ajax/ejempo.json”,函数(数据){ var项目=[]; $。每个(数据、函数(键、值){ 项目。推送(“+val+””); }); $( "", { “类”:“我的新列表”, html:items.join(“”) }).附于(“主体”); });
$.getSOn的正确用法如上所述

我发现解决方案非常简单。。这是一个缓存问题,因此没有加载新的JSON数据。但是,我确实更改了覆盖的“数据”值。谢谢大家

感觉很好。当您执行
console.log(data.url)
时,您是否得到了结果?我在控制台中未定义
console.log(data.url)
您再次使用相同的变量:
data
。执行类似于
$.each(数据、函数(键、值){…})的操作
几乎可以肯定,这些值中的“/”字符存在问题。你可能不得不对这些进行编码。研究encodeURIComponent,看看这是否有帮助。我会检查网络选项卡中API的响应,以确保所有数据都已发送。为什么这只会影响两个属性“方向”和“url”?实际上我不知道,数据中的其他键也应该未定义。无论如何,在
每个
函数中将
数据
更改为
可以解决您的问题。我尝试了此操作,但仍然无法定义这两个值。您能否在每个函数之前编写
控制台。记录(数据)
,并将结果放在那里? $.getJSON( "ajax/ejemplo.json", function( data ) { var items = []; $.each( data, function( key, val ) { items.push( "" + val + "" ); }); $( "", { "class": "my-new-list", html: items.join( "" ) }).appendTo( "body" ); });
$.getJSON("https:../houston-locations.js",function(data){
    console.log(data);
     $.each(data, function( key, value ){
        console.log(data.directions);
        console.log(data.url);
  });
    });