为什么我的json不能正常返回?

时间:2014-11-17 22:55:31

标签: jquery ajax json get

我显然错过了一个简单的步骤,试图用$ .each自学$ .ajax。我只是在本地运行。没什么好看的,只是想了解一些新的概念。

我有一个.json文件,我使用带有2个对象的$ .ajax检索数组。

如果我在.json文件中只有一个对象,我可以得到我想要的回报没问题。但是,如果我添加第二个对象,并尝试使用$ .each来浏览文件,我的程序会跳转到我的代码的.fail()部分。

我的.json文件和我的$ .ajax代码如下。 提前谢谢。

[
  {
    "id": 1,
    "name" : "James",
    "drink" : "Coffee"
  },
  {
    "id": 2,
    "name" : "Joey",
    "drink" : "Diet Coke"
  },
];

js code:

$(document).ready(function() {
  var $orders = $('#orders');

   $.ajax({
     url: "data/orders.json",
     type: 'GET',
     dataType: 'json'
   })
    .done(
     function(data) {    
        $.each(data, function(i, item) {
         $orders.append('<li>Name: ' + data.name + ', ' + data.drink + '</li>');
         });
        }
    )
    .fail(
        function() {
            alert("Failure");
        }
    );
});

1 个答案:

答案 0 :(得分:3)

[
  {
    "id": 1,
    "name" : "James",
    "drink" : "Coffee"
  },
  {
    "id": 2,
    "name" : "Joey",
    "drink" : "Diet Coke"
  }, <-- remove this comma
]; <-- remove this ';' also

你也需要写

$orders.append('<li>Name: ' + data[i].name + ', ' + data[i].drink + '</li>');

因为data是整个数组,所以要通过data[i]访问您需要执行的任何项目。其实, data[i]item是等效的。

$orders.append('<li>Name: ' + item.name + ', ' + item.drink + '</li>');