当前位置: 首页 > 后端技术 > Node.js

你不知道的JSON.stringify()的妙用

时间:2023-04-03 19:39:07 Node.js

1语法JSON.stringify(value[,replacer[,space]])一般用法:varuser={name:'andy',isDead:false,age:11,addr:'shanghai'};JSON.stringify(user);"{"name":"andy","isDead":false,"age":11,"addr":"shanghai"}"2扩展用法2.1replacerreplacer可以是函数也可以是数组。函数一:改变属性值,将isDead属性的值翻译成0或1,0对应false,1对应truevaruser={name:'andy',isDead:false,age:11,addr:'上海'};JSON。stringify(user,function(key,value){if(key==='isDead'){returnvalue===true?1:0;}returnvalue;});"{"name":"andy","isDead":0,"age":11,"addr":"shanghai"}"函数二:删除一个属性删除isDead属性。如果替换器的返回值未定义,则该属性将被删除。varuser={name:'andy',isDead:false,age:11,addr:'shanghai'};JSON.stringify(user,function(key,value){if(key==='isDead'){returnundefined;}returnvalue;});"{"name":"andy","age":11,"addr":"shanghai"}"函数三:通过数组过滤一些属性只需要name属性和addr属性,其他没有。varuser={name:'andy',isDead:false,age:11,addr:'shanghai'};JSON.stringify(user,['name','addr']);"{"name":"andy","addr":"shanghai"}"2.2空格可以是数字也可以是字符串,如果是数字表示属性名前加空格符号的个数,如果是字符串直接加字符串在属性名称之前。函数一:输出属性前加n个空格varuser={name:'andy',isDead:false,age:11,addr:'shanghai'};JSON.stringify(user,null,4);"{"name":"andy","isDead":false,"age":11,"addr":"shanghai"}"函数二:tab格式输出varuser={name:'andy',isDead:false,age:11,addr:'shanghai'};JSON.stringify(user,null,'\t');"{"name":"andy","isDead":false,"age":11,"addr":"shanghai"}"函数3:有趣的JSON.stringify(user,null,'good');"{good"name":"andy",good"isDead":false,good"age":11,good"addr":“上海”}“2.3深拷贝varuser={name:'andy',isDead:false,age:11,addr:'shanghai'};vartemp=JSON.stringify(用户);varuser2=JSON.parse(temp);3OtherJSON.parse()其实是支持第二个参数的。功能类似于JSON.stringify的第二个参数。4参考MDNJSON.stringify()