gpt4 book ai didi

javascript - 如何从具有多个页面的 json api 解析数据

转载 作者:行者123 更新时间:2023-12-03 05:13:18 26 4
gpt4 key购买 nike

目标:从 API 解析 JSON,结果在多个页面上列出。

我是 JSON 和一般数据处理新手。我想知道如何编写一个函数来更新 url,输出每个页面的结果,并在到达空页面时停止。

此处的问题来自 Shopify 网址,该网址显示用于琐碎目的的 JSON 数据,而不是实际应用程序的一部分。

https://shopicruit.myshopify.com/admin/orders.json?page=1&access_token=c32313df0d0ef512ca64d5b336a0d7c6

每个页面有 5O 个对象。我正在向 url 发出 $.ajax 请求,但该 url 将 page=1 作为查询,

$.ajax({
url:"https://shopicruit.myshopify.com/admin/orders.json?page=1&access_token=c32313df0d0ef512ca64d5b336a0d7c6",
method:'get',
dataType:'JSON'
}).done(function(response){

所以我返回的响应仅适用于第一页的结果(显然)。我知道还有更多页面 b/c 如果我手动将 2 代替 1 我可以看到不同的数据。这会持续多个页面。我尝试删除页面选项,将其设置为 all 和 any,这些仅显示第 1 页。我认为也许将页面选项排除在外可以解决问题,但事实并非如此。

如何通过ajax调用获取所有页面的数据?它是一个在内部接受 $.ajax 调用、添加 page++ 并为每个页面进行新调用的函数吗?我仍然不知道该怎么写,悲伤。

shopify API 文档确实给出了一些关于如何显示“所有数据”的示例,但我尝试使用他们的建议,但它不起作用,所以我不确定它是否适用于该问题,但以防万一是- https://help.shopify.com/api/reference/order

最佳答案

这是一个简单的答案 - 这将获取页面,直到明显没有更多数据 - 即一旦页面返回少于 limit 个订单

function getAllData(page) {
return $.ajax({
url:"https://shopicruit.myshopify.com/admin/orders.json?page=" + (page || 1) + "&limit=250&access_token=c32313df0d0ef512ca64d5b336a0d7c6",
method:'get',
dataType:'JSON'
}).then(function(response){
if (page && response.orders.length == 250) {
return getAllData(page + 1)
.then(function (more) {
return response.orders.concat(more)
})
}
return response.orders;
});
}

getAllData(1).then(function(orders) {
// orders is an array of orders
});

Note I've used 250 for limit to get 250 at a time

我说这很简单,因为它确实获取了所有数据,但是,您需要等到所有数据都检索完毕后才能使用它 - 这对于您的“用户体验”来说可能需要太长时间 - 但这应该带您到达可以开始的地方

代码中的逻辑是,如果 page 为 0,则无论其中有多少项,都只会检索第一页 - 因此您可以执行类似的操作

getAllData().then(function(page1data) {
// do something with page 1
}).then(function() {
return getAllData(2); // start at page 2
}).then(function(restOfData) {
// do something with restOfData, pages 2+
});

我不确定的一件事是

.then(function(response){

您可能需要将其更改为

.then(function(r){
var response = r[0];

我不是 100% 确定 jQuery 的 .then 回调参数

关于javascript - 如何从具有多个页面的 json api 解析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41710967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com