【问题标题】:Using data pulled from an API使用从 API 中提取的数据
【发布时间】:2020-06-08 22:58:49
【问题描述】:

现在已经花了半天的时间来解决这个问题,虽然已经取得了一些进展,并且进行了大量有用的研究,但我仍然是新手,所以我需要帮助。

我需要使用从 API 中提取的数据用作 JS 变量。我的API 给了我以下输出:

{"bitcoin":{"usd":9695.66,"usd_24h_change":2.0385849528977977}}

我想使用该字符串中的 usdusd_24_change 值,可能作为一些 JS 变量进行进一步计算。

到目前为止,我所做的是将字符串直接推送到 HTML 中,这样我就可以对其进行可视化表示,但是我需要在后端从中提取值(希望这有意义吗?)

到目前为止我的代码:

fetch(url)
  .then(response => response.text())
  .then(data => {
    $('#apiPlaceholder').html(data);
  });

老实说,我已经没有想法了。我唯一的选择是尝试直接从 HTML 字符串中提取值,但我觉得这将是一种非常笨拙的方法。我确信有办法解释后端的数据。

任何想法都将不胜感激! :)

【问题讨论】:

  • 使用response.json() - 这会给你一个反序列化的形式。

标签: javascript api


【解决方案1】:

以下是你将如何去做:

fetch(url)
  .then(response => response.json())
  .then(data => {
    console.log(data["bitcoin"]["usd"]);
    console.log(data["bitcoin"]["usd_24h_change"]);
  });

【讨论】:

  • 伙计,这实际上帮助我弄清楚了!非常感谢你。我实际上并不想在控制台中显示它,但提取数据的语法帮助了我!谢谢一百万 - 基本上回答了我的问题!
【解决方案2】:

您需要解析响应,然后保存它。

 fetch(url)
  .then(response => response.text())
  .then(data => {
    const parsedData = JSON.parse(data);
    const usd = parsedData.bitcoin.usd;
    const usd_24h_change = parsedData.bitcoin.usd_24h_change;
  });

或改为显示它;

【讨论】:

  • 谢谢弗拉德!认为我尝试了这些方面的一些东西,但在我可能错过某些东西或犯了一些语法错误之前没有这样做。无论哪种方式,您上面的回复实际上为我解决了它,但我真的很感谢您的回复。也许我将来也会使用它:)
  • 基本上是一样的,但是前面的答案使用了一个内置的解析器,它更好更优雅。我不是每天都使用 fetch API,所以我忘记了这个选项。
猜你喜欢
  • 1970-01-01
  • 2015-02-07
  • 2022-11-16
  • 2021-11-24
  • 2017-04-16
  • 2021-09-25
  • 2013-09-01
  • 2014-02-23
  • 1970-01-01
相关资源
最近更新 更多