首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析Node中的嵌套api响应

解析Node中的嵌套api响应
EN

Stack Overflow用户
提问于 2021-06-01 04:32:33
回答 2查看 32关注 0票数 0

一个如下的API请求:const response = await this.publicGetMarkets (params);给了我一个响应,其中包含以下格式的markets列表:

代码语言:javascript
复制
{
  "markets": {
    "LINK-USD": {
    "market": "LINK-USD",
    "status": "ONLINE"
  },
  ...
}

就像这里的例子一样,我的问题是每个市场的LINK-USD都在变化。我如何修复我的代码,使我可以在我的代码中的变量,如marketstatus。我已经编写了以下代码片段:

代码语言:javascript
复制
const market = this.safeValue (response, 'markets');
    const result = [];
    for (let i = 0; i < markets.length; i++) {
       const markets = this.safeString (markets, {}, {});
       const market = this.safeString (markets, 'market');
       const status = this.safeString (markets, 'status');
       result.push({
           'market': market,
           'status': status,
        });
     }
     return result;
EN

回答 2

Stack Overflow用户

发布于 2021-06-01 04:59:51

您可以使用Object.values(data.markets)获取所有内部对象的数组。

如果需要过滤掉不需要的属性,这也是一个相当简单的映射

代码语言:javascript
复制
const data = {
  "markets": {
    "LINK-USD": {
      "market": "LINK-USD",
      "status": "ONLINE"
    },
    "LINK-EURO": {
      "market": "LINK-EURO",
      "status": "TBD"
    }
  }
}

const res = Object.values(data.markets)

console.log(res)

票数 1
EN

Stack Overflow用户

发布于 2021-06-01 04:56:27

代码语言:javascript
复制
    const responses = this.safeValue (response, 'markets');
    const result = [];
    for (let response of responses) {
       const market = responses.markets["LINK-USD"].market,
       status = responses.markets["LINK-USD"].status;
       result.push({market, status});
     }
     return result;

我希望这就是你要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67779917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档