Angular 4 - машинописный текст: json2typescript json key mapper - PullRequest
0 голосов
/ 13 июня 2018

Извините, но я не очень хорошо это объяснил.Я снова редактирую свой вопрос:

У меня угловое приложение 4, и я использую json2typescript для преобразования из json в объект и наоборот, но у меня есть проблема, потому что у меня есть структура класса и ответ json от внешнего APIимеет другую структуру.Пример:

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

Внешний ответ Json API:

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

Итак, я хотел бы отобразить вышеуказанный json на мой объект Customer и не изменять свою структуру.Я пытался вставить «rolInfo.name» в JsonProperty, но это не сработало.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Измените свой класс клиента на что-то вроде ниже

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;
  }
}

Это должно сделать это

0 голосов
/ 13 июня 2018

Похоже, что ответ JSON уже находится в хорошем формате, и вам не нужно выполнять преобразование.Я бы порекомендовал создавать модели, поскольку они допускают сериализацию и десериализацию при выполнении вызовов API и привязке ответа к этой модели.

...