gpt4 book ai didi

javascript - 解析 JSON 时未调用数据对象构造函数

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:33 25 4
gpt4 key购买 nike

我从服务器获取一些数据,然后将其解析为 TypeScript 类。我正在尝试使用一些继承 - 每个类都需要能够报告其类型。其工作原理如下:

这是基类

import { PageElementType } from './page-element-type'

export class PageElement {
pageElementType: PageElementType;
constructor(aPageElementType: PageElementType) {
this.pageElementType = aPageElementType;
}
}

这是一个派生类

import { PageElement } from './page-element.model'
import { PageElementType } from './page-element-type'

export class Metadata extends PageElement {
id: number;
body: string;

constructor(){
super(PageElementType.metadata);
}
}

这是我调用来解析数据的服务函数

getExam(){
let exam = this.http.get('http://orangeberry.hopto.org/api/Exam/1')
.map((response:Response) => <Exam>response.json())
.do(data => console.log(data));
return exam;
}

似乎我得到了某种普通的对象。我想要真正遵循类定义的有意义的、功能性的对象。对于我的案例来说,实现这一目标的最简单、最直接的方法是什么?

最佳答案

强制转换只是静态代码分析的一个提示,在运行时没有任何作用。

如果你希望该值成为类的实例,则需要自己创建这样的实例:

.map((response:Response) => new Exam(response.json()))

其中 Exam 类的构造函数将 JSON 分解为其属性。

关于javascript - 解析 JSON 时未调用数据对象构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42317722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com