首页 > 解决方案 > 修改 Angular 服务中的 api 响应

问题描述

我正在尝试通过 API 请求修改响应返回。现在我得到的回应是

[
   {
       name: "Afghanistan"
   }, 
   {
       name: "Åland Islands"
   }
]

我想将其修改为:

[
   {
        name: "Afghanistan",
        name1: "Afghanistan",
        name2: "Afghanistan"
    },
    {
        name: "Åland Islands",
        name1: "Åland Islands",
        name2: "Åland Islands"
    }
]

我正在尝试复制名称字段并创建新字段,例如:name1,name2 in same object。这是工作项目https://stackblitz.com/edit/angular-8bzcdp 任何人都可以帮助

标签: angulartypescriptrxjs

解决方案


您可以将方法更改为:

  getRecords() {
    return this.http.get('https://restcountries.eu/rest/v2/all').pipe(
      map((res: any[]) => {
        const data = res.map(obj => ({
          name: obj.name,
          name1: obj.name,
          name2: obj.name
        }));
        return data;
      })
    );
  }

在生成的响应数组 ( res[]) 上,我们根据您的条件将每个元素映射到一个 json 对象并返回新创建的 json 对象。


推荐阅读