从 json 文件设置变量并获取第二个 API json

问题描述 投票:0回答:1

对于 javascript 和 json 来说,我是个新手。正如它很快就会显示的那样。大约 12 年前,我对 javascript 有过一些经验。但这是最小的。所以,对我宽容点吧。

很难准确解释我遇到的问题是什么。那么,我在这里举个例子。我有一个 API URL,我需要从中获取另一个 API URL,然后使用该 json 文件创建我的 html 页面。我可以很好地获取第一个 json 文件,比如说,

http://www.thiscarsite.com/API/thecars
,它的设置类似于以下示例。

{ "manufacturer": "Cheverolet",
  "model": "Camaro",
  "year": "1990",
  "styles": {
        "top": "convertible",
        "engine"; "v8",
        "address": "http://www.somesite.com/api/90ChevCamConvV8"
        }
}

正如我所说,我可以通过 fetch/await 很好地获取第一个 json 信息。或者像这样简单的事情。

const startUrl = 'http://www.thiscarsite.com/API/thecars';
fetch(startUrl)
  .then(response => {
    return response.json();
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });

我见过通过

const newURL = data.styles.address;
获取 URL 的示例,但是我如何从上面的示例中获取地址 AND 请求第二个 json 文件呢?我没有提到第一个 json 文件中的 URL 每周可能会更改 3 或 4 次。因此,每次我需要访问它时都需要从第一个获取它。

我知道这些信息可能很容易找到。我只是在这个问题上不够聪明,无法使用正确的搜索词。

我感谢任何人花时间为我指明正确的方向。

我尝试过,但没有运气

尝试过类似的操作,我插入第二个 URL 的编辑失败了

fetch('https://example.com/endpoint1')
  .then(response => {
    return response.json();
  })
  .then(data1 => {
    return fetch(`https://example.com/endpoint2?data=${data1}`);
  })
  .then(response => {
    return response.json();
  })
  .then(data2 => {
    console.log(data2);
  })
  .catch(error => {
    console.error(error);
  });

此外,尝试使用 2 个异步函数,但不断收到诸如“响应已调用”之类的错误(或类似的内容)

javascript arrays json
1个回答
0
投票

我发现我做错了什么。或者至少我的想法是错误的。我没有意识到“响应”可以被称为任何东西,并且尝试使用它两次。所以,现在我有这样的东西

async function getUrl(){
const response = await fetch(startUrl, {headers: myheader});
const data = await response.json();
console.log(data);
const newUrl = data.styles.address;
const response2 = await fetch(newUrl);
const data2 = await response2.json();
console.log(data2);
}
getUrl();
© www.soinside.com 2019 - 2024. All rights reserved.