用JSON作为输入创建TypeScript对象最简单的方法是什么?

用JSON作为输入创建TypeScript对象最简单的方法是什么?,json,angular,typescript,Json,Angular,Typescript,在Angular2(TypeScript)中,我有一个具有以下构造函数的类: export class DataModel { constructor(public date_of_visit: string, public gender: boolean, public year_of_birth: number, public height: number,

在Angular2(TypeScript)中,我有一个具有以下构造函数的类:

 export class DataModel {
    constructor(public date_of_visit: string,
                public gender: boolean,
                public year_of_birth: number,
                public height: number,
                public weight: number){}
 }
我有以下JSON对象:

json = {"date_of_visit": "23/09/2016", "gender": 1, "year_of_birth": 1975, "height":185, "weight": 85}

问题:用JSON数据作为输入创建数据模型实例的最简单方法是什么?类似于
newdatamodel(**json)

的内容应该可以帮助您完成:

let model: DataModel = {"date_of_visit": "23/09/2016", "gender": 1, "year_of_birth": 1975, "height":185, "weight": 85} as DataModel;

对于编译时强制转换,这将执行以下操作:

let dataModel = {"date_of_visit": "23/09/2016", "gender": 1, "year_of_birth": 1975, "height":185, "weight": 85} as DataModel;

值得注意的是,执行类型断言的首选方法是
obj as type
。仅供参考,这是一个类型断言,它是一个编译时构造,而不是一个类型转换,它将是一个运行时构造。这实际上意味着通过解析JSON创建的对象在运行时将是
对象
实例,而不是
数据模型
实例。只要您不使用
instanceof
,也不定义方法、getter、setter或任何解析后的JSON本身不存在的东西,就可以了。感谢@JohnWhite澄清这一点。我想我想要的答案是类型转换,因为我需要调用DataModel的方法。你能举个例子吗?我想我在这里找到了答案:依我看,这是一个完全未知的打字脚本。没有标准化的方法来执行实际的类型转换,这可以归功于TypeScript相对年轻的时代,其目标之一是最小化任何运行时开销。然而,我开始做一个实验性项目,它正是您想要的:从JSON创建一个用户定义的类实例。它有其局限性,但对于一般用途来说,它是可靠的,并且它的语法非常轻量级。我可以发布一个答案。我会看看你的项目,谢谢你的指导。可能的副本