首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角9:从HTTP读取JSON

角9:从HTTP读取JSON
EN

Stack Overflow用户
提问于 2020-04-25 20:16:26
回答 2查看 239关注 0票数 0

我只需要提取一些API提供给我的JSON数据的一个值。问题是,我无法访问“实时货币汇率”中的内容。下面是我的代码,以及我要完成的任务。提前,谢谢你!

JSON数据

代码语言:javascript
复制
{
"Realtime Currency Exchange Rate": {
    "1. From_Currency Code": "USD",
    "2. From_Currency Name": "United States Dollar",
    "3. To_Currency Code": "NOK",
    "4. To_Currency Name": "Norwegian Krone",
    "5. Exchange Rate": "10.60921000", //Need to obtain just this one
    "6. Last Refreshed": "2020-04-25 18:34:28",
    "7. Time Zone": "UTC",
    "8. Bid Price": "10.60921000",
    "9. Ask Price": "10.61031000"
}

}

接口

代码语言:javascript
复制
export interface PairDetails {
    'Realtime Currency Exchange Rate': PairDetailed[];
}
export interface PairDetailed {
    '1. From_Currency Code': string;
    '2. From_Currency Name': string;
    '3. To_Currency Code': string;
    '4. To_Currency Name': string;
    '5. Exchange Rate': string;
    '6. Last Refreshed': string;
    '7. Time Zone': string;
    '8. Bid Price': string;
    '9. Ask Price': string;
}

获取值的代码

代码语言:javascript
复制
 private getExchangeRate(pair1: string, pair2: string) {
    return this.http.get(`https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=${pair1}&to_currency=${pair2}&apikey=demo`);
  }
this.getExchangeRate(separarDivisas[0], separarDivisas[1]).subscribe((v: PairDetails) => {
          const val = v['Realtime Currency Exchange Rate'];
          Object.values(val).forEach((data) => {
            console.log(data['5. Exchange Rate']);
          });
        });

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-25 21:15:01

你能检查一下这个链接Angular9-示例吗?

代码语言:javascript
复制
 apiService
  .getExchangeRate("hello", "world")
  .pipe(
    map(x => x["Realtime Currency Exchange Rate"]),
    pluck("5. Exchange Rate")
  )
  .subscribe((v: PairDetails) => {
    console.log(v);        
  });
票数 1
EN

Stack Overflow用户

发布于 2020-04-25 20:45:38

例如,测试数据中的这个数组应该按预期工作。

代码语言:javascript
复制
export interface PairDetails {
    'Realtime Currency Exchange Rate': PairDetailed[];
}
export interface PairDetailed {
    '1. From_Currency Code': string;
    '2. From_Currency Name': string;
    '3. To_Currency Code': string;
    '4. To_Currency Name': string;
    '5. Exchange Rate': string;
    '6. Last Refreshed': string;
    '7. Time Zone': string;
    '8. Bid Price': string;
    '9. Ask Price': string;
}

let test = {
    "Realtime Currency Exchange Rate": [{
        "1. From_Currency Code": "USD",
        "2. From_Currency Name": "United States Dollar",
        "3. To_Currency Code": "NOK",
        "4. To_Currency Name": "Norwegian Krone",
        "5. Exchange Rate": "10.60921000", //Need to obtain just this one
        "6. Last Refreshed": "2020-04-25 18:34:28",
        "7. Time Zone": "UTC",
        "8. Bid Price": "10.60921000",
        "9. Ask Price": "10.61031000"
    }]
} as PairDetails;

let key: keyof PairDetails = 'Realtime Currency Exchange Rate';

const values = test[key];
console.log(values);
Object.values(values).forEach((data) => {
     console.log(data['5. Exchange Rate']);
});

示例链接这里

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

https://stackoverflow.com/questions/61432037

复制
相关文章

相似问题

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