如何从对象重命名字段

时间:2018-01-15 05:38:20

标签: javascript angular typescript

我正在使用Angular 5。 我有"假的后端" (项目数组)。 我的情况: 我正在等待以下对象结构:

id: number,
title: string

但是,Back-End给我错误的结构:

id: number,
name: string.

我需要从后端接收数据,如果字段名称(在我的情况下"名称"错误,应该是"标题")是错误的,我应该RENAME字段并返回有效对象。

P.S。我有界面和类

2 个答案:

答案 0 :(得分:1)

您可以检查对象是否具有名称密钥,然后创建另一个标题为

的对象
if (obj.hasOwnProperty("name")){
  var newObj = {
    id: obj.id,
    title: obj.name
  };
}
obj = newObj;

答案 1 :(得分:1)

对于您无法控制后端的大型应用程序的良好做法是为您期望的每种响应类型创建一个映射器。

例如,您发出http请求以从后端检索汽车列表。 检索响应时,将数据传递给特定的映射函数。

class CarMapper {

    // map API to APP
    public serverModelToClientModel(apiModel: CarApiModel): CarAppModel {
        const appModel = new CarAppModel(); // your Car constructor
        // map each property
        appModel.id = apiModel.id_server;
        appModel.name = apiModel.title;
        return appModel; // and return YOUR model
    }

}

这种方式在客户端,您始终拥有正确的数据模型。并且您可以适应在后端进行的任何模型更改。