JSON.stringify 高级用法

语法

JSON.stringify(value[, replacer [, space]])

参数说明

  • value:必传,需要序列化的值。
  • replacer:非必传,函数或者数组,改变 JSON.stringify 输出结果。
  • space:非必传,数字或者字符串,改变输出 JSON 字符串的缩进。

返回值:JSON字符串

第一个参数value相信大家都已经使用过很多次了,这里我们主要探索第二个参数replacer和第三个参数space的使用。

第二个参数replacer:

当第二个参数 replacer 为函数时,函数有两个参数,第一个参数为健,第二个参数为值

我们看到,replacer 函数执行了四次,第一次执行健 key 是空字符串,值 value 是 obj 对象,第二次、第三次、第四次之后执行返回的健 key 是 obj 对象的健,值 value 是 obj 对象的值。

那我们怎样改变 JSON.stringify 输出结果呢?答案当然是改变 replacer 函数的返回值了。这里我么修改一下代码,当健 key 是 b 的时候,我们返回字符 'bbb'

可以看到,我们的输出结果中健 b 变成了 'bbb' 。

当第二个参数 replacer 为数组时,类似于筛选的功能,数组中包含的健才会被序列化。

 数组中我们传了 a 和 c,输出结果中筛选出了 a 和 c 的结果。

第三个参数 space 为数字时

神奇的事情发生了,我们的输出结果变“漂亮”了,数字表示我们需要缩进的数量,但 space 最大只能为 10, 当大于 10 时,文本只会缩进 10 个数量。

当第三个参数 space 为字符串时

 输出的结果中缩进变成了我们设置的 space 字符串。所以 space 也可以设置成 \t、\n等特殊字符串

 当设置成 \t 时,结果缩进了 4 个空白。

总结

第二个参数可以修改、过滤 JSON.stringify 的输出结果,第三个参数可以修改缩进,一般用于美化输出结果。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值