在JavaScript中替代JSON.stringify()

2exbekwf  于 3个月前  发布在  Java
关注(0)|答案(2)|浏览(75)

在JavaScript中,对于没有原生JSON支持的浏览器,JSON.stringify()的替代方案是什么?谢谢

vcirk6k6

vcirk6k61#

你应该使用json2.js库,它是标准JSON.stringify(...)的基础,有些浏览器本身就包含了它。
您可以在这里找到它所创建的页面:https://github.com/douglascrockford/JSON-js/blob/master/json2.js
如果JSON.stringify(...)方法还不存在,脚本会自动确保只添加该方法,因此将其包含在具有该方法的浏览器中不会有危险。

mcvgt66p

mcvgt66p2#

根据您的用例,您可以使用序列化库。
当你想存储(或传输)更复杂的JavaScript对象时,这是很有帮助的,当你想在以后解析它们时(以及其他用途),

然而,你不会得到一个标准的JSON文件,而是一个可能只能由同一个库使用的超集。

我已经列出了一些原因,为什么你可能想考虑一个序列化器库,而不是JSON.stringify()和JSON.parse()。每个序列化器都是不同的,但理想情况下,序列化器可以:
1.处理JSON.parse()无法处理的循环引用。
1.处理所有数据类型,包括Date,Error,undefined或Functions -JSON.stringify不能。
1.处理非标准数据类型的转换。
1.处理更大的物体。
1.更好地处理Unicode或其他特殊字符。
下面是一个我发现很容易用途:https://github.com/erossignon/serialijse
作为序列化的示例用例,(尽管有更突出的用例,这只是我如何使用它),我使用上述库的缩小版本编写了一个开发人员工具控制台代码片段,将浏览器扩展的所有配置和存储备份到一个文件中,以便稍后恢复。由于扩展已存储在其本地存储中的自定义类型,

相关问题