JSON.stringify()的深度使用

Posted 艾若菲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON.stringify()的深度使用相关的知识,希望对你有一定的参考价值。

在使用JSON.stringify()对JSON数据进行序列化时

1> 如果里面的属性是function,则会被忽略

const data = {
     a: ‘a‘,
     fn: funciton() {
           return true   
      }   
}

JSON.stringify(data); // "{"a":"a"}"    *******fn属性被忽略了**********

2> 如果里面的属性的值是undefined, 也是会被忽略的

const data = {
     a: ‘a‘,
     b: undefined
}

JSON.stringify(data); // "{"a":"a"}"    *******b属性被忽略了**********

3>但是如果里面的属性值是null, 是不会被忽略的

const data = {
     a: ‘a‘,
     b: null
}

JSON.stringify(data); // "{"a":"a","b":null}"    *******b属性没有被忽略**********

其实JSON.stringify()有三个参数:stringify(value, [replacer, space](可选的, replacer: 自定义的函数,space: 格式化输出(相当于tab键,值的范围是[1(负数的时候默认是1),10]))),为了属性值为function和undefined的属性在序列化的时候不要被忽略,我们可以对replacer做操作

比如:

 

以上是关于JSON.stringify()的深度使用的主要内容,如果未能解决你的问题,请参考以下文章

angular,,以及深度拷贝问题;JSON.parse,JSON.stringify灵活运用

JSON.stringify 深层对象

限制 JSON 字符串化深度

JSON.stringify() :

JSON对象实现深度克隆

尝试使用复制(JSON.stringify(结果))