簡體   English   中英

如何從分頁 JSON 中提取數據

[英]How to pull data from Paginated JSON

我已經說過 300 個項目 10 顯示到一個頁面。 頁面加載 JSON 數據,限制為 10 個(無法更改)

我想瀏覽 30 多頁,拉出每個項目並列出它。

url.com/api/some-name?page=1 etc

理想情況下,該腳本將使用上述 URL 作為規則並以 1 為增量進行擦除,直到填充了每個頁面的所有 10 個。

這能做到嗎? 我該怎么辦? 對此的任何建議或幫助都將極大地幫助我學習和查看人們建議的方法。

const getInfo = async function(pageNo) {
const jsonUrl = "https://website.com/api/some-title";

  let actualUrl = jsonUrl + `?page=${pageNo}`;
  let jsonResults = await fetch(actualUrl).then(response => {
    return response.json();
  });
  return jsonResults;
};
const getEntireList = async function(pageNo) {
  const results = await getInfo(pageNo);
  console.log("Retreiving data from API for page:" + pageNo);
  if (results.length > 0) {
    return results.concat(await getEntireList(pageNo));
  } else {
    return results;
  }
};
(async () => {
  const entireList = await getEntireList();
  console.log(entireList);
})();

我可以在您的代碼中看到一些問題。

  1. 對 getEntireList() 的初始調用應該使用第一頁的索引進行初始化,可能像const entireList = await getEntireList(1);
  2. 頁碼在某些時候需要增加。
  3. results.concat()可能不會達到預期的效果。 json()返回一個對象、列表或值(取決於服務器), results將是這些類型之一。 concat()對字符串進行操作; 所以調用json()是(充其量)多余的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM