无法从 API 获取值

Posted

技术标签:

【中文标题】无法从 API 获取值【英文标题】:Cannot get a value from API 【发布时间】:2022-01-10 17:39:27 【问题描述】:

我有一个来自polygon.io的api调用的问题。 我正在使用他们的免费 API,它可以为我提供有关股票行情的信息。

我使用的 API 在调用时会为我提供响应。 从响应中,我需要得到响应>数据>结果>“c”值,在这种情况下,1014.97

到目前为止,我能做的最好是: console.log(response.data.results)

给出:

  Array [
  Object 
    "T": "TSLA",
    "c": 1014.97,
    "h": 1090.5753,
    "l": 1000.21,
    "n": 1043576,
    "o": 1084.79,
    "t": 1638565200000,
    "v": 30773995,
    "vw": 1028.7486,
  ,

请告诉我如何获得“c”值?

这是完整的回复数据:

console.log(response)

,在VS-Code>终端显示:

Object 
  "config": Object 
    "adapter": [Function xhrAdapter],
    "baseURL": "https://api.polygon.io/",
    "data": undefined,
    "headers": Object 
      "Accept": "application/json",
    ,
    "maxBodyLength": -1,
    "maxContentLength": -1,
    "method": "get",
    "params": Object 
      "apiKey": "Gp5IgTvT4fPbfhINPpOk7iBIUDjOTRc9",
    ,
    "timeout": 5000,
    "transformRequest": Array [
      [Function transformRequest],
    ],
    "transformResponse": Array [
      [Function transformResponse],
    ],
    "transitional": Object 
      "clarifyTimeoutError": false,
      "forcedJSONParsing": true,
      "silentJSONParsing": true,
    ,
    "url": "v2/aggs/ticker/MSFT/prev",
    "validateStatus": [Function validateStatus],
    "xsrfCookieName": "XSRF-TOKEN",
    "xsrfHeaderName": "X-XSRF-TOKEN",
  ,
  "data": Object 
    "adjusted": true,
    "count": 1,
    "queryCount": 1,
    "request_id": "6a2a6c28efc5fcf9e4b1f295f845bf91",
    "results": Array [
      Object 
         "T": "TSLA",
         "c": 1014.97,
         "h": 1090.5753,
         "l": 1000.21,
         "n": 1043576,
         "o": 1084.79,
         "t": 1638565200000,
         "v": 30773995,
        "vw": 1028.7486,
      ,
    ],
    "resultsCount": 1,
    "status": "OK",
    "ticker": "MSFT",
  ,
  "duration": 406,
  "headers": Object 
    "content-type": "application/json",
    "date": "Sat, 04 Dec 2021 21:37:55 GMT",
    "server": "nginx/1.19.2",
    "strict-transport-security": "max-age=15724800; includeSubDomains",
    "vary": "Accept-Encoding",
    "x-request-id": "6a2a6c28efc5fcf9e4b1f295f845bf91",
  ,
  "ok": true,
  "originalError": null,
  "problem": null,
  "status": 200,

【问题讨论】:

【参考方案1】:

Results 是一个字典对象数组。包含“c”值的字典对象是数组的第一个元素。 所以,你可以这样得到它

response.data.results[0].c

【讨论】:

【参考方案2】:

由于“结果”是一个包含字典的数组,因此您可以使用 response.data.results['c'] 引用关闭值。

【讨论】:

我尝试了你的方法:console.log(response.data.results['c']) 导致 undefined。 @Achraf 的方法奏效了。不过谢谢:)

以上是关于无法从 API 获取值的主要内容,如果未能解决你的问题,请参考以下文章

无法从异步函数获取返回值,等待未按预期工作(Vue API 服务)

无法从函数中获取值

无法获取用户会话国家/地区值

我无法使用 Geonames API 从邮政编码中获取城市名称

从 React 上下文 API 的列表中删除记录后无法设置道具值

无法从 API 获取图像