如何将 JSON 对象转换为 TypeScript 类? [英] How do I cast a JSON Object to a TypeScript class?

查看:62
本文介绍了如何将 JSON 对象转换为 TypeScript 类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I read a JSON object from a remote REST server. This JSON object has all the properties of a typescript class (by design). How do I cast that received JSON object to a type var?

我不想填充 typescript var(即有一个接受这个 JSON 对象的构造函数).它很大并且通过子对象复制子对象中的所有内容&逐个属性会花费很多时间.

I don't want to populate a typescript var (ie have a constructor that takes this JSON object). It's large and copying everything across sub-object by sub-object & property by property would take a lot of time.

更新:你可以将其转换为打字稿界面!

推荐答案

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

You can't simple cast a plain-old-JavaScript result from an Ajax request into a prototypical JavaScript/TypeScript class instance. There are a number of techniques for doing it, and generally involve copying data. Unless you create an instance of the class, it won't have any methods or properties. It will remain a simple JavaScript object.

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

While if you only were dealing with data, you could just do a cast to an interface (as it's purely a compile time structure), this would require that you use a TypeScript class which uses the data instance and performs operations with that data.

复制数据的一些例子:

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

本质上,您只需:

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

这篇关于如何将 JSON 对象转换为 TypeScript 类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆