【问题标题】:Call a specific array in a JSON API call在 JSON API 调用中调用特定数组
【发布时间】:2021-10-27 20:34:14
【问题描述】:

我正在尝试调用 API,但它没有返回任何内容。 我这样称呼它:res.on('data', d => { const RetrieveFromApi = JSON.parse(d).FLUX.quote.USD.price;

API 调用成功,因为我可以在 API 历史记录中看到它,并且数据定义为d

你能帮帮我吗?

【问题讨论】:

  • 什么给了你console.log(JSON.parse(d))
  • 你去 :) Screen of the logs
  • @newcomerindev 您的日志屏幕截图显示该对象有一个 status 字段 - 与您问题的屏幕截图相同。因此d 不包含data,正如您在问题中所声称的那样。看来你只需要JSON.parse(d).FLUX.quote.USD.price -> JSON.parse(d).data.FLUX.quote.USD.price
  • 我仍然有同样的错误,这里是日志:Logs
  • 请阅读How to Ask,尤其是上面写着“请勿发布代码、数据、错误消息等的图片。 - 将文本复制或输入到问题。”

标签: javascript node.js json


【解决方案1】:

在评论中提供的屏幕中,您传递了一个您无法访问的属性,即data 所以只需在FLUX之前添加属性data

JSON.parse(d).FLUX.quote.USD.price;
             ^data.FLUX.quote.USD.price;

【讨论】:

  • 我仍然有同样的错误,这里是日志:Logs
  • 日志似乎不起作用!
  • 是的,这就是我试图寻求帮助的原因,哈哈
【解决方案2】:

从日志的图像来看,该对象最后似乎不完整,您是否尝试使用 JSON.stringify(d) 来查看 json 对象是否有任何错误?还是复制https://jsonlint.com上的回复查看?

因为错误消息指出解析没有找到有效的 json 对象,也许这就是重点。

另一个技巧是在尝试访问他的值之前尝试将 JSON.parse 的值存储在一个变量中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多