如何将 JSON 对象转换为 TypeScript 类?

新手上路,请多包涵

我从远程 REST 服务器读取了一个 JSON 对象。这个 JSON 对象具有 typescript 类的所有属性(按设计)。如何将接收到的 JSON 对象转换为类型 var?

我不想填充 typescript var(即有一个接受这个 JSON 对象的构造函数)。它很大,并且逐个子对象和逐个属性地跨子对象复制所有内容将花费大量时间。

更新: 但是,您可以 将其转换为打字稿界面!

原文由 David Thielen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

您不能简单地将 Ajax 请求中的普通 JavaScript 结果转换为原型 JavaScript/TypeScript 类实例。有许多技术可以做到这一点,通常涉及复制数据。除非您创建类的实例,否则它不会有任何方法或属性。它将仍然是一个简单的 JavaScript 对象。

如果您只处理数据,您可以只对接口进行强制转换(因为它纯粹是一个编译时结构),这将要求您使用使用数据实例并对该数据执行操作的 TypeScript 类。

复制数据的一些示例:

  1. 将 AJAX JSON 对象复制到现有对象中
  2. 在 JavaScript 中将 JSON 字符串解析为特定的对象原型

本质上,您只需:

 var d = new MyRichObject();
d.copyInto(jsonResult);

原文由 WiredPrairie 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于 Java 爱好者

制作 POJO 类

export default class TransactionDTO{
    constructor() {
    }
}

按类创建空对象

let dto = new TransactionDto()   // ts object
let json = {name:"Kamal",age:40} // js object

let transaction: TransactionDto = Object.assign(dto,JSON.parse(JSON.stringify(json)));//conversion

原文由 Nilupul Heshan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进