首页 > 解决方案 > 转换 Typescript 模型的 http.get 响应 json 实例

问题描述

我还没有找到关于这个问题的可靠答案:
如何将我的 JSON 响应从 HTTP.get 请求转换为我的 Typescript 对象的实例?

设置舞台:

CLASS =====================
export interface IMyClass {
  myClassId: number;
  myClassName: string;
  myClassDescription: string;
}

export class MyClass implements IMyClass {
  public myClassId: number;
  public myClassName: string;
  public myClassDescription: string;

  constructor(
    myClassId: number;
    myClassName: string;
    myClassDescription: string;
  ) {
    this.myClassId = myClassId
    this.myClassName = myClassName
    this.myClassDescription = myClassName    
  }
}


SERVICE===============
  public getMyClassById(id: number): Observable<MyClass> {
    return this.http.get<MyClass>(`${this.apiEndpoint}/myClassId?myClassID=${id}`)
  }

我试图弄清楚如何在不利用完整构造函数的情况下做到这一点,因为我的真实模型有大约 12 个属性。我试过 pipe => 将响应映射为 MyClass ,但这似乎也不起作用。

标签: angulartypescriptinheritanceangular7http-get

解决方案


我试图弄清楚如何在不利用完整构造函数的情况下做到这一点,

您正在寻找反序列化(也称为水合)库。

我可以推荐的是https://github.com/mobxjs/serializr因为它支持 TypeScript

我的想法

就我个人而言,我更喜欢手动分配,它的代码更多,但可以让你远离神奇的错误。


推荐阅读