JavaScript 国际化 API 与 JSON 序列化详解
1. JSON 序列化中的替换函数
在 JSON 序列化时,替换函数(replacer function)会替换原始值。若替换函数返回 undefined
或无返回值,该值及其对应的数组元素或对象属性将在序列化中被忽略。
示例代码
// 指定要序列化的字段及其顺序
let text = JSON.stringify(address, ["city","state","country"]);
// 指定一个替换函数,忽略正则表达式值的属性
let json = JSON.stringify(o, (k, v) => v instanceof RegExp ? undefined : v);
这两个 JSON.stringify()
调用以良性方式使用第二个参数,生成的序列化输出无需特殊的恢复函数即可反序列化。但一般来说,若为类型定义了 toJSON()
方法,或使用替换函数将不可序列化的值替换为可序列化的值,通常需要在 JSON.parse()
中使用自定义恢复函数来恢复原始数据结构。不过要明白,这样做相当于定义了自定义数据格式,会牺牲与大量 JSON 兼容工具和语言的可移植性与兼容性。
2. JavaScript 国际化 API 概述
JavaScript 国际化 API 包含 Intl.NumberFormat