我正在尝试使用客户机的API,该API允许我以json格式检索一组订单。我可以使用下面的代码,它将显示三个警报框。第一个框显示200 (假设这是html成功代码),然后我得到一个空白警告框,然后第三个框写着: Object。
在Chrome中,如果我使用F12键并进入网络预览,我会看到三个部分,状态包含一个主体部分,其中包含订单部分。订单部分有50个订单。每个订单都有一些属性,如: order_type:“拾取”等等。我的问题是如何迭代实际订单。我不知道达到顺序的语法,以及顺序中的属性。
我的最终目标是遍历所有50个订单,将一些订单属性分配给JavaScript vars,然后将其传递到一个将该订单插入到我的数据库中的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);
});
}
});发布于 2013-08-20 01:15:54
根据你提供的信息。第一个200个警报将是计数(number_of_orders_in_response)。您使用$.each所做的是迭代对象属性,而不是订单。orders是数据对象上的属性。所以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-20 01:15:11
将$.each的第一个参数从数据更改为data.orders
https://stackoverflow.com/questions/18325385
复制相似问题