Angular 4 - Typescript: json2typescript json key mapper

Angular 4 - Typescript: json2typescript json key mapper

抱歉,我没有解释清楚。我再次编辑我的问题:

我有一个 angular 4 应用程序,我使用 json2typescript 从 json 转换为对象,反之亦然,但我有一个问题,因为我有一个 class 结构和来自外部 api 的响应 json 具有另一种结构。示例:

Customer {
  @JsonProperty('idCardNumber', String)
  idCardNumber: string = undefined;
  @JsonProperty('rolInfo.name',String) 
  name: string = undefined;
  @JsonProperty('rolInfo.surname',String) 
  surname: string = undefined;  
}

外部JsonAPI响应:

 {
   "idCardNumber": "08989765F",
   "rolInfo": {
      "name": "John"
      "surname: "Smith"
   }
 }

所以,我想从上面的 json 映射到我的 Customer 对象,而不更改我的结构。我试图将 'rolInfo.name' 放入 Json属性,但这不起作用。

似乎响应 JSON 已经是正确的格式,您不需要进行转换。 我建议创建模型,因为它们允许在进行 API 调用并将响应绑定到该模型时进行序列化和反序列化。

将您的客户 class 更改为如下内容

Customer {
  @JsonProperty('idCardNumber', String)
  idCardNumber: string = undefined;

  @JsonProperty('rolInfo', Any) 
  rolInfo: any = {}; // if you set this to undefined, handle it in getter/setter

  get name(): string {
      return this.rolInfo['name'];
  }

  set name(value: string) {
      this.rolInfo['name'] = value;
  }

  get surname(): string {
     return this.rolInfo['surname'];
  }

  set surname(value: string) {
      this.rolInfo['surname'] = value;
  }
}

应该这样做