JSON.stringify,是定义在ES5中的标准对象。(以下均简称stringify)
说到stringify,大家可能再熟悉不过了,不过,我们最常见的使用还是使用的是仅仅带一个参数的情况。
stringify至多可接收3个参数,value: 要序列化的对象, ?replacer: 过滤条件,?space: 缩进。
replacer可以是3种值,null,字符串数组,函数。
1、当是null的时候,讲不会对当前键-值进行处理;
2、当是数组的时候,数组提供需要保留的键:

3、当是函数的时候,函数接收2个参数:key:当前序列化的key,value:当前序列化的value;
如图:

当我们再使用过滤函数处理时候,如果不符合我们要特殊化处理的操作,一定要记得放行(图中 return value),否则格式化出来的数据就有问题。
第三个参数是是否使用缩进,当我们不适用缩进的时候,stringify序列化的结果是一行,不便于观察,若提供此参数,则可以按指定字符进行缩进也可以按照特殊符号进行缩进。
在序列化的过程中,还可以为对象定制toJSON(目的是为了更精细化的控制)方法,当执行序列化的时候,如果定义了这个方法,则调用这个方法里面返回的值,否则执行上述过程。
例如:

以上内容均参考自《JavaScript高级程序设计》。

本文介绍了ES5标准对象JSON.stringify。它至多可接收3个参数,包括要序列化的对象、过滤条件和缩进。过滤条件replacer可以是null、字符串数组或函数,第三个参数可控制缩进。此外,还可定制toJSON方法实现更精细控制,内容参考《JavaScript高级程序设计》。
9万+

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



