JavaScript 中的 JSON 序列化与国际化 API 详解
1. JSON 序列化中的替换函数
在 JSON 序列化过程中,替换函数(replacer function)会替代原始值进行字符串化。若替换函数返回 undefined 或者没有返回值,那么该值(及其数组元素或对象属性)将不会出现在序列化结果中。
以下是两个使用 JSON.stringify() 方法的示例:
// 指定要序列化的字段及其顺序
let text = JSON.stringify(address, ["city","state","country"]);
// 指定一个替换函数,忽略正则表达式值的属性
let json = JSON.stringify(o, (k, v) => v instanceof RegExp ? undefined : v);
这两个 JSON.stringify() 调用以良性方式使用了第二个参数,生成的序列化输出可以在不使用特殊恢复函数(reviver function)的情况下进行反序列化。不过,一般来说,若为某个类型定义了 toJSON() 方法,或者使用替换函数将不可序列化的值替换为可序列化的值,通常需要在 JSON.parse() 中使用自定义恢复函数才能恢复原始数据结构。但这样做意味着定义了一种自定义数据格式,会牺牲与大量 JSON 兼容工具和语言的可移植性和兼容性。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



