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的主要内容,如果未能解决你的问题,请参考以下文章

基类到派生类类型转换

类到类访问数据

CodeIgniter 加密类到 java

php WP Multisite类到Body

Wordpress-当前页面类到导航

C++ 类到 C# 类的转换