TypeScript 类到 JSON
Posted
技术标签:
【中文标题】TypeScript 类到 JSON【英文标题】:TypeScript class to JSON 【发布时间】:2017-04-28 04:06:27 【问题描述】:我有一个类数组,其中类看起来像:
class Tag
select: string;
search: string;
我想将它转换为 JSON,它可能看起来像 [select: "blah", search: "bleh", ..., ...]
。
这可能吗?因为在 Angular 2 教程中,您可以使用以下行做相反的事情:
.map((r: Response) => r.json().data as Hero[]);
【问题讨论】:
js中的大部分东西都是对象所以是的 @madalinivascu 你知道什么函数吗? 一个有用的问题:***.com/questions/13589880/… 做到了,您要发布答案以便我标记它吗? 你的意思是你想把这个类的一个instance转换成一个普通的旧JS对象吗?或者您想将此类的 instance 转换为 JSON 字符串?或者你想转换类本身——这意味着什么?另外请注意,这个问题与 Angular 无关,与 TypeScript 关系不大。 【参考方案1】:您可以在班级中添加toJSON()
函数。当在您的类实例上调用 JSON.stringify()
时,会自动调用此函数
class Person
constructor(readonly name)
toJSON()
return
firstName: this.name
现在如果你 console.log
你的类实例使用 JSON.stringify
你会看到这个结果
const person = new Person("Tom"); console.log(JSON.stringify(person));
输出
firstName: "Tom"
【讨论】:
【参考方案2】:您可以使用 JSON.stringify()
将 javascript 对象转换为 json 字符串
由于类和类的实例是 javascript 中的对象,因此您也可以将它们字符串化
【讨论】:
【参考方案3】:使用JSON.stringify()
js
中的大多数东西都是对象。
class Hero
let Heros:Hero[] = JSON.stringify(response.data);
所以Heros
是你想要的数组:)
【讨论】:
谢谢,但是madalin首先给了我答案,所以如果他做出答案,我会标记它。还是 +1 这不是答案。此外它甚至不会编译。以上是关于TypeScript 类到 JSON的主要内容,如果未能解决你的问题,请参考以下文章