6 个答案:
答案 0 :(得分:6)
与想要在JS中进行字符串化的任何其他对象一样,您可以使用JSON.stringify:
JSON.stringify(yourObject);
class MyClass {
constructor() {
this.foo = 3
}
}
var myClass = new MyClass()
console.log(JSON.stringify(myClass));
另外值得注意的是,您可以通过为toJSON method自定义stringify序列化对象的方式。用于在生成的JSON字符串中表示对象的值将是在该对象上调用toJSON方法的结果。
答案 1 :(得分:5)
我知道这个问题很老但是我一直在盯着我看,直到我写了一个紧凑的真实,“安全”的解决方案。
反序列化返回仍然附加有工作方法的对象。
您唯一需要做的就是在序列化程序的构造函数中注册要使用的类。
class Serializer{
constructor(types){this.types = types;}
serialize(object) {
let idx = this.types.findIndex((e)=> {return e.name == object.constructor.name});
if (idx == -1) throw "type '" + object.constructor.name + "' not initial