首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >JSON小技巧

JSON小技巧

作者头像
阿超
发布于 2022-11-22 14:19:21
发布于 2022-11-22 14:19:21
4640
举报
文章被收录于专栏:快乐阿超快乐阿超

越年轻,就越不能跟丑事妥协——纪德

分享个前端的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值,则可以传入第二个参数,可以接受一个数组类型

代码语言:javascript
复制
JSON.stringify({name:'VampireAchao',age:21},['name'])

转出来则是'{"name":"VampireAchao"}'

如果我们要自定义规则,则可以传入一个函数类型,第一次调用时value为我们的数据对象,属于由外向内调用

代码语言:javascript
复制
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之间来点美观的间距,则可以传入第三个参数

代码语言:javascript
复制
JSON.stringify({name:'VampireAchao',age:21},null,'\t')

JSON.parse就不再赘述了,也可以支持第二个参数,但属于由内向外调用

代码语言:javascript
复制
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
})
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档