TypeScript类到JSON

A. *_*Lau 6 javascript json typescript

我有一个类数组,类如下所示:

class Tag{
    select: string;
    search: string;
}
Run Code Online (Sandbox Code Playgroud)

我想将它转换为JSON,它可能看起来像[{select: "blah", search: "bleh"}, {...}, {...}].

这可能吗?因为从Angular 2教程中你可以使用相反的行:

.map((r: Response) => r.json().data as Hero[]);
Run Code Online (Sandbox Code Playgroud)

mad*_*scu 6

您可以使用以下命令将javascript对象转换为json字符串:JSON.stringify() 由于类和类的实例是javascript中的对象,因此也可以对其进行字符串化


Abh*_*ane 6

您可以在您的类中添加一个toJSON()函数。JSON.stringify()在您的类实例上调用此函数时,会自动调用该函数

class Person{
  constructor(readonly name){}

  toJSON(){
    return {
      firstName: this.name
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果您console.log使用类实例,JSON.stringify您将看到这个结果

const person = new Person("汤姆"); console.log(JSON.stringify(person));

输出

{
  firstName: "Tom"
}
Run Code Online (Sandbox Code Playgroud)