angular - 转换 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 ,但这似乎也不起作用。
解决方案
我试图弄清楚如何在不利用完整构造函数的情况下做到这一点,
您正在寻找反序列化(也称为水合)库。
我可以推荐的是https://github.com/mobxjs/serializr因为它支持 TypeScript
我的想法
就我个人而言,我更喜欢手动分配,它的代码更多,但可以让你远离神奇的错误。
推荐阅读
- django - Django Signals 设置信号以在注册用户后在 UserExtended 模型上创建默认头像图像
- php - 如何在 PHP 中使用文本输入验证单选按钮
- matplotlib - 该图属于哪个绘图库?
- python - 加快python中的查询/forloop
- flutter - Flutter:验证后TextFormField丢失装饰
- python-jsonschema - 如何扩展 jsonschema 验证器?
- raspberry-pi - 在 dhcpcd.conf (raspberry pi) 中更改静态 IP 地址时 ssh 不起作用
- docx4j - 将 Docx4J 输出为 PDF 文件
- jenkins - 如何针对同一个 github 存储库配置两个 Jenkins Pull Request Builder
- javascript - 无法读取未定义的属性“错误”(redux,react)