JSON.stringify的使用和一些思维拓展

本文探讨了JSON.stringify的使用,包括如何通过space参数进行美化输出和使用replacer函数进行深度遍历及数据筛选。通过示例展示了replacer函数如何实现数据处理,以及如何利用JSON.stringify的遍历特性实现深度遍历对象的纯函数算法。
摘要由CSDN通过智能技术生成

平时在对一个数据进行凑合用的 json化,我们会直接 JSON.stringify(obj) 输出一个一行的字符串,并且会自动过滤掉 undefined、Function、Symbol等内容,对于递出现循环引用则会直接报错。

但它实际上能够接3个参数,而且,JSON.stringify 并非触摸不到对象里面的 undefined、Function、Symbol等。

JSON.stringify(obj, replacer?, space?)

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

space 美化

space 大于0时是用来美化输出字符串,将内容输出成格式化后的效果,定义了缩进时的空格数。

const obj = {
   a: 1, b: [{
    c: 2, d: 3 }]}
JSON.stringify(obj, null, 2);
/*
"{
  "a": 1,
  "b": [
    {
      "c": 2,
      "d": 3
    }
  ]
}"
*/

因此相比 js 代码需要用 ugilfyjs 等工具进行代码格式处理,json 格式的字符串可以直接用 JSON.stringify 完成排版美化。

replacer 遍历

replacer 是定义在 JSON.stringify 深度遍历时,处理到的键值对(如果是数组,键为下标;如果既不是对象也不是数组则没有键)进行一些特殊化处理,它支持数组函数两种有效类型,其他类型都将当做不发生任何处理(且正常运行)。

  1. 数组:只输出指定 key 的内容(但其父节点必须存在)

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值