【发布时间】:2019-01-26 17:09:05
【问题描述】:
我有一些这样的json;
example.json
{
"id": 1,
"name": "John Doe",
"age": 23,
"country": "US",
"language": "en",
"created_at": 1534774253,
"updated_at": 1534774269
}
我有一个这样的 user.ts 界面;
user.ts
interface user {
id: number;
name: string;
age: number;
country: string
}
那么,我怎样才能把这个 json 转换成一个从这个接口实现的对象呢?我尝试了const userObj: user = JSON.parse(exampleJson);,但 userObj 具有 json 中的所有属性。我想生成一个只有 user.ts 属性的用户对象。
例如=>JSON.stringify(userObj);,输出为{"id":1,"name":"John Doe","age":23,"country":"US"}。
有人知道方法吗?
【问题讨论】:
-
这在我看来不像是重复的:问题是关于删除 TypeScript 界面中不存在的属性。
-
这个 JSON 是从哪里来的? TS 类型导入的 JSON 文件。
-
@estus 它通过 REST 来自远程服务器。
-
@MattMcCutchen 来自公认的答案:“你不能简单地将一个普通的旧 JavaScript 结果......转换为原型 JavaScript/TypeScript 类实例。” + "...,您可以只对接口进行强制转换(因为它纯粹是一个编译时结构)" -> 解析 JSON,去除无用的属性,强制转换为
user(应该被命名为IUser,恕我直言)
标签: json node.js typescript