es6 将字符串转换为json_将ES6类对象序列化为JSON

这篇博客介绍了如何在ES6中将类对象序列化为JSON字符串,包括使用JSON.stringify()方法,以及通过自定义toJSON方法实现更精细的控制。此外,还提供了几种解决方案,如使用特定库、手动处理类实例的序列化和反序列化,以保持方法和属性。示例代码展示了如何创建一个Serializer类来处理这些操作。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值