2

我正在尝试使用允许我以 json 格式检索一组订单的客户端 API。我可以使用下面的代码来显示三个警报框。第一个框显示 200(我假设这是 html 成功代码),然后我得到一个空白警告框,然后第三个框显示:[object Object]。

在 Chrome 中,如果我使用 F12 键并转到网络预览,我会看到三个部分,其中包含包含订单部分的正文部分的状态。订单部分有 50 个订单。每个订单都有以下属性:order_type:“Pickup”等。我的问题是如何遍历实际订单。我不知道到达订单的语法以及订单内的属性。

我的最终目标是遍历所有 50 个订单,将一些订单属性分配给 JavaScript 变量,然后将其传递给 MVC 控制器,该控制器将把该订单插入我的数据库。基本上是通过他们的 API 从客户数据库中获取订单并将它们存储到我的本地数据库中。我猜我将在 for first .each 循环中使用另一个 ajax 调用,通过调用将执行数据库插入的 MVC 控制器将几个订单属性发布到我的数据库中?

预先感谢您的任何帮助。

$.ajax({
    type: 'GET',
    url: 'https://api.customer.com/2000105850/orders.json?v=1&key=12345',
    success: function (data) {                        
        $.each(data, function (index, element) {
            alert(element);   
        });
    }
});
4

2 回答 2

2

根据您提供的信息。前 200 个警报将是计数 (number_of_orders_in_response)。您对 $.each 所做的是迭代对象属性,而不是订单。订单是数据对象的一个​​属性。所以 data.orders 是你想要的数组。

尝试这个:

$.ajax({
  type: 'GET',
  url: 'https://api.customer.com/2000105850/orders.json?v=1&key=12345',
  success: function (data) {                        
    var orders = data.orders;
    var i = orders.length;
    while (i--) {
      alert(orders[i].order_type);
    }

  }
});

此外,看起来涉及分页。因此,您在编写脚本时需要考虑到这一点,以确保捕获所有可用页面,而不仅仅是第一个页面。

于 2013-08-20T01:15:54.550 回答
1

将 $.each 的第一个参数从 data 更改为 data.orders

于 2013-08-20T01:15:11.997 回答