第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 }" */