【发布时间】:2017-03-20 13:09:11
【问题描述】:
JSON.stringify 有一个特性,通过定义一个名为 toJSON 的函数,使对象能够定义自己的序列化。
这是 MDN 文档的摘录:
toJSON() 行为
如果一个被字符串化的对象有一个名为 toJSON 的属性,它的值 是一个函数,那么 toJSON() 方法自定义 JSON 字符串化行为:不是被序列化的对象,而是 toJSON()方法调用时返回的值会被序列化。
有没有办法覆盖它,这样即使附加了 toJSON 方法,它也会忽略它们并进行“正常”序列化?
原因:由于 JS 库,在我的环境中引入了一些 toJson 方法,有一些小错误。并且其中一些有缺陷的序列化格式已被接受,并且服务器端被编码为该格式。
所以,我无法删除有问题的方法,但是我想提示 JSON.stringify 忽略这些方法。
【问题讨论】:
-
不打算将此作为答案发布,因为我什至对尝试过这个感到羞耻,但您可以覆盖该方法:jsfiddle.net/TheQueue841/6ynwmy5t
标签: javascript json serialization