JSON中的URL返回为undefined

时间:2017-07-10 20:57:55

标签: javascript jquery json javascript-objects

我正在尝试遍历一些JSON但是一旦它获得了url的值,它们将返回为undefined。这是我的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>'
      )
  })
});

我的JSON:

{ "restaurant":31, "restaurantName":"Shenandoah", "address":"19075 IH 45 S Suite 480", "city":"Shenandoah", "state":"TX", "zip":77385, "phone":"(936) 271-9217", "directions":"https://www.google.com/maps/dir//Pei+Wei,+19075+I-45+%23480,+Shenandoah,+TX+77385/@30.1826863,-95.4533763,17z/", "url":"/texas/31-shenandoah"}

最后两个键,“directions”和“url”是唯一返回未定义的键。我做错了什么?

4 个答案:

答案 0 :(得分:0)

问题出在这里:

$.getJSON("https:../houston-locations.js", function(data){
    $.each(data, function(i, data) {

您正在覆盖data中的变量function(i, data),请考虑将其更改为value或其他内容。

答案 1 :(得分:0)

使用此代码:


    $.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" );
    });

答案 2 :(得分:0)

$.getJSON("https:../houston-locations.js",function(data){
    console.log(data);
     $.each(data, function( key, value ){
        console.log(data.directions);
        console.log(data.url);
  });
    });

正确使用$ .getSOn如上所述

答案 3 :(得分:0)

我发现解决方案很简单..这是一个缓存问题,因此新的JSON数据没有被加载。然而,我确实改变了覆盖数据&#39;值。谢谢大家!