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高级程序设计》。