浅记一下JSON.stringify的3个参数说明

 我们经常会使用JSON.stringify去处理对象,将其处理为字符串,JSON.stringify可以传入3个参数,               

  (1)第一个参数就是我们经常使用的,即传入需要转化的对象,

       (2)第二个参数用于特殊处理对象,可以传入数组,也可以传方法,(key,value)=>{ return value},可以用于处理对应key的内容;

       (3)第三个参数是数字或字符串,表示缩进内容,如果是数字,则表示缩进几个空格;如果是字符串,则缩进的内容是对应的字符串。

 

首先定义一个对象:

1 let demoObj = {
2     name:"张三",
3     age:"20",
4     phone:"132*********",
5     address:"xx省xx市"
6 }

 

1. 第一种使用,直接只传一个参数,我们可以看到效果,处理为字符串了

 

 

 2. 第二种使用,我们传入2个参数

我们可以看到,当第2个参数为数组时,会对数据进行遍历,从对象中找出存在的key,然后处理保存key的数据处理为字符串。下面示例中数组传了【"noKey"】字段,但字符串并没有他的内容,因为参数1中的对象没有这个key,处理的字符串的key的顺序与第2个参数数组顺序一致。

当第2个参数为方法时,可以针对特定的某个key进行数据处理,(key,value)=>{return value}

 

 

 3. 传个第3个参数,可以对字符串进行缩进,如果传的是数字,那么就缩进空格,如果其他字符串,则缩进的是字符串内容

 

 

 

 

 

 

 

4. JSON.stringify的弊端:如果key的值为方法,则处理后会丢失这个key

 

我们可以将function处理成字符串,然后如果要转回json时可以通过 new Function(`return ${fnStr}`)又处理为方法了。

 

 

 

 

 

 

 

 

posted @ 2022-06-30 19:47  蛙仔  阅读(941)  评论(0编辑  收藏  举报