越年轻,就越不能跟丑事妥协——纪德
分享个前端的JSON.stringify
以及parse
小技巧
MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON
例如我们此处使用JSON.stringify({name:'VampireAchao',age:21})
可以将对象转为json
如果我们只想要name
值,则可以传入第二个参数,可以接受一个数组类型
JSON.stringify({name:'VampireAchao',age:21},['name'])
转出来则是'{"name":"VampireAchao"}'
如果我们要自定义规则,则可以传入一个函数类型,第一次调用时value
为我们的数据对象,属于由外向内调用
let times = 0; const json = JSON.stringify({name:'VampireAchao',age:21},(key, value) =>{ console.log(++times) console.table({key,value}) if(typeof value === 'object'|| Array.isArray(value)){ return value } if(typeof value !== 'string'){ return undefined } return value }) console.log(json)
效果如下:
如果我们需要json
之间来点美观的间距,则可以传入第三个参数
JSON.stringify({name:'VampireAchao',age:21},null,'\t')
JSON.parse
就不再赘述了,也可以支持第二个参数,但属于由内向外调用
let times = 0; JSON.parse('{"name":"VampireAchao","age":21}',(key,value)=>{ console.log(++times) console.table({key,value}) if(typeof value === 'object'|| Array.isArray(value)){ return value } if(typeof value !== 'string'){ return undefined } return value })