最新文章:
- 什么是静态服务器
- npx是什么东东,跟npm有啥关系?
- AMD宣布将在全球范围内裁员4%
- 处理Deprecation Warning: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.警告
- 什么是原子化CSS
您的位置:
富录-前端开发|web技术博客
>
JavaScript >
你不常用的JSON.stringify用法
你不常用的JSON.stringify用法
发布时间:2022年03月16日 评论数:抢沙发阅读数: 2127
先想想,工作中,你经常用JSON.stringify来干嘛?还有哪些用法和特性你是没用过的?接下来我们一起来看看。
如果你还想了解一些JSON.parse的其他用法,可以看看《你不常用的JSON.parse的用法》这篇文章
语法
JSON.stringify(value[, replacer [, space]])
从语法上来看,我们常用的是value这个参数,replacer和space这两个参数比较少用,或者有些人基本没用过。
我们来看个例子
这个是我们都需要的对象
const person = { id: 3508, name: 'DGF', age: 30, address: { city: 'xm', }, arr: [1, 2, 3] }
1.用来序列化对象
默认的JSON.stringify(obj)是一行字符串
console.log(JSON.stringify(person))
参数space
space有空间,间距的意思,用来控制字符串每个字符的间距,在格式化JSON时,用来控制每行的缩进
2.格式化
格式化输出,4表示空格缩进
console.log(JSON.stringify(person, null, 4))
用自定义字符串用于缩进
console.log(JSON.stringify(person, null, '....'))
参数replacer
可以是个数组或者函数,函数时,有两个参数,key和value,其作用是可以选择哪些属性要隐藏(即不需要被序列化的属性)
3.筛选属性
序列化数据时隐藏某些属性
let test1 = JSON.stringify(person, (key, value) => { //id和age不需要序列化 if(key == 'id' || key == 'age') { return } return value; }) console.log(test1)
let test2 = JSON.stringify(person, (key, value) => { //value为number类型的不需要序列化 if(typeof value == 'number') { return } return value; }) console.log(test2) function stripKeys(...keys) { return (key, value) => { if(keys.includes(key)) { return } return value; } } console.log(JSON.stringify(person, stripKeys('arr', 'address')))
数组里面是需要序列化的数据
console.log(JSON.stringify(person, ['name', 'address', 'city']))
也可用于数组
筛选数组需要的元素
const person1 = [{ id: 1, name: 'a', age: 12, arr: ['a', 'b', 'c'] },{ id: 2, name: 'b', age: 22, arr: ['aa', 'bb', 'cc'] }] console.log(JSON.stringify(person1, ['id', 'age']))
4.判断数组/对象是否包含某对象
const person2 = { id: 2, name: 'b', age: 22, arr: ['aa', 'bb', 'cc'] } console.log(JSON.stringify(person1).indexOf(JSON.stringify(person2)) !== -1);//true const p3 = { a: 1, b: 2, c: { d: 5 } } const p4 = { d: 5, } console.log(JSON.stringify(p3).indexOf(JSON.stringify(p4)) !== -1);//true
5.判断数组是否相等
let arr1 = ['a', 'b']; let arr2 = ['a', 'b']; console.log(JSON.stringify(arr1) === JSON.stringify(arr2));//true
本文作者:DGF
文章标题:
你不常用的JSON.stringify用法
本文地址: https://arbays.com/post/176  本文已被百度收录!
版权声明:若无注明,本文皆为“富录-前端开发|web技术博客”原创,转载请保留文章出处。
本文地址: https://arbays.com/post/176  本文已被百度收录!
版权声明:若无注明,本文皆为“富录-前端开发|web技术博客”原创,转载请保留文章出处。
相关文章