Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从分页JSON中提取数据_Javascript_Json_Pagination_Fetch - Fatal编程技术网

Javascript 如何从分页JSON中提取数据

Javascript 如何从分页JSON中提取数据,javascript,json,pagination,fetch,Javascript,Json,Pagination,Fetch,我说一页有300个项目10个。页面加载JSON数据,限制为10(无法更改) 我想翻阅30多页,把每一项都列出来 url.com/api/some-name?page=1 etc 理想情况下,脚本将使用上述URL作为规则,并以1为增量进行清理,直到填充每个页面的所有10个URL 这能做到吗?我该怎么做呢?任何关于这方面的建议或帮助都将极大地帮助我学习和研究人们建议的方法 const getInfo = async function(pageNo) { const jsonUrl = "https

我说一页有300个项目10个。页面加载JSON数据,限制为10(无法更改)

我想翻阅30多页,把每一项都列出来

url.com/api/some-name?page=1 etc
理想情况下,脚本将使用上述URL作为规则,并以1为增量进行清理,直到填充每个页面的所有10个URL

这能做到吗?我该怎么做呢?任何关于这方面的建议或帮助都将极大地帮助我学习和研究人们建议的方法

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);
})();

我可以在你的代码中看到一些问题

  • 对getEntireList()的初始调用应该使用第一页的索引进行初始化,可能类似于
    constEntireList=wait getEntireList(1)
  • 页码在某一点上需要增加
  • results.concat()
    可能不会达到预期效果
    json()
    返回一个对象、列表或值(取决于服务器),而
    结果将属于这些类型之一
    concat()
    对字符串进行操作;因此调用
    json()
    是(充其量)冗余的

  • 与我们分享你试图解决这个问题的方法。嗨@IslamElshobokshy,我已经用我到目前为止的方法更新了这篇文章。