我们经常会使用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}`)又处理为方法了。
原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/270852.html