第2个参数
作用:用于过滤、格式化
- 没有或者是null,则所有属性被序列化
JSON.stringify({name: 'Ben', age: 18}) JSON.stringify({name: 'Ben', age: 18}, null) // "{"name":"Ben","age":18}"
- 是数组,则属性名在该数组内的属性被序列化
JSON.stringify({name: 'Ben', age: 18}, ['age']) // "{"age":18}"
- 是函数,则该函数会遍历属性,return undefined的属性会被忽略
JSON.stringify({name: 'Ben', age: 18}, (key, value) => { if (key === 'age') return undefined return value }) // "{"name":"Ben"}"
第3个参数
用于缩进、美化
- 没有或者是null,则正常打印
JSON.stringify({name: 'Ben', age: 18}, null) JSON.stringify({name: 'Ben', age: 18}, null, null) // "{"name":"Ben","age":18}"
- 是数字,则代表缩进多少个空格,最大为10,小于1则没有空格
JSON.stringify({name: 'Ben', age: 18}, null, -1) // "{"name":"Ben","age":18}" JSON.stringify({name: 'Ben', age: 18}, null, 4) /* "{ "name": "Ben", "age": 18 }" */
- 是字符串,则作为缩进使用
JSON.stringify({name: 'Ben', age: 18}, null, "😁") /* "{ 😁"name": "Ben", 😁"age": 18 }" */