JavaScript 序列化与反序列化详解:方法、原理及应用场景

作者:键盘侠时间:2026-10-23 05:26:00浏览:79

本文详解JavaScript中对象与字符串的相互转换机制。重点解析JSON.stringify用于序列化,以及JSON.parse、eval和parseJSON用于反序列化的具体用法。深入探讨eval添加括号的原理,并总结在后台交互、跨页面传值及本地存储中的实际应用场景与注意事项。

JavaScript 序列化方法

(1)序列化

即将JS中的对象转换为字符串形式

1.调用obj.toJSONString()方法


var str=obj.toJSONString(); //将JSON对象转化为JSON字符 

2.调用JSON.stringify(obj)方法


var str=JSON.stringify(obj); //将JSON对象转化为JSON字符 

反序列化技术与原理

(2)反序列化

即将JS中的JSON字符串还原为对象

1.调用eval('('+josnStr+')')函数


var obj=eval("("+data+")");

为何在eval中需添加 "("+data+");//”?

原因在于eval自身的特性。因JSON以”{}”起止,JS将其视为语句块,故需强制转换为表达式。

2.调用jsonStr.parseJSON()方法


​var obj = jsonStr.parseJSON(); //由JSON字符串转换为JSON对象

3.调用parse(jsonStr)函数


var obj = JSON.parse(data); //由JSON字符串转换为JSON对象

常见应用场景分析

(3)应用场景

1.向后端传递参数及接收返回值

若后端返回String(序列化后的Object),需在JS中使用eval或parse等转为Object后再使用;

若返回时已指定类型如Object,则可直接使用

2.页面间数据传递,尤其是数组场景

必须使用序列化,否则IE会报错:无法执行已释放的Script代码

3.进行本地存储操作时

存入本地window.localStorage.setItem(key,value)的value为JSON序列化字符串;获取到的window.localSorage.getItem(key)亦为JSON序列化字符串,需经反序列化后方可使用(常见于JSON序列化数组)

如有不足敬请指正!愿对您有所帮助!

总结

至此本文内容结束,希望本文对大家的学习或工作有参考价值,感谢支持。欲了解更多请查阅下方相关链接

作者最新文章