34、JavaScript 中的 JSON 序列化与国际化 API 详解

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 兼容工具和语言的可移植性和兼容性。

2. J
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值