一、操作簡介
JSON.stringify() 方法用於將 JavaScript 值轉換為 JSON 字符串。通過序列化的方式,可以將 JSON 對象轉換為字符串,傳輸到其他的計算機或存儲到本地介質上。通過反序列,也可以將字符串轉化為 JSON 對象。
該方法有三個參數。第一個是序列化的JavaScript 對象;第二個是過濾器函數,可以過濾部分屬性;第三個則是縮進以及間隔控制。
// 簡單示例 let obj = { name: 'Jack', age: 30, address:{ city: 'New York', state: 'NY', zip: 10001 } }; let jsonStr = JSON.stringify(obj); console.log(jsonStr);// {"name":"Jack","age":30,"address":{"city":"New York","state":"NY","zip":10001}}
二、縮進
通過第三個參數,可以指定縮進以及間隔的字符數,使 JSON 格式化輸出。如果是數字,則指定每個級別的縮進字符的數目。如果是字符串,用作縮進字符;比如“\t”。
// 簡單示例 let obj = { name: 'Jack', age: 30, address:{ city: 'New York', state: 'NY', zip: 10001 } }; let jsonStr = JSON.stringify(obj, null, '\t'); console.log(jsonStr); // { // "name": "Jack", // "age": 30, // "address": { // "city": "New York", // "state": "NY", // "zip": 10001 // } // }
三、數據類型
JSON.stringify() 方法能夠序列化除 symbol 類型之外的大部分 JavaScript 基礎數據類型,包括字符串、數字、布爾值和 null,也能序列化對象、數組和 Map 類型等複雜數據類型。
// 簡單示例 let obj = { name: 'Jack', age: 30, address:{ city: 'New York', state: 'NY', zip: 10001 } }; let arr = [1, 2, 3, "apple", true, null, obj]; let jsonStr = JSON.stringify(arr); console.log(jsonStr); // [1, 2, 3, "apple", true, null, {"name":"Jack","age":30,"address":{"city":"New York","state":"NY","zip":10001}}]
四、Date 對象
JSON.stringify() 在序列化 Date 對象時,效果與 toISOString() 方法類似。
// 簡單示例 let obj = { today: new Date() }; let jsonStr = JSON.stringify(obj); console.log(jsonStr); // {"today":"2022-02-22T08:00:57.150Z"}
五、函數、Symbol 和 undefined
JSON.stringify() 在序列化函數、symbol 和 undefined 時會自動將其忽略。
// 簡單示例 let obj = { name: 'Jack', func: function() { console.log('Hello World'); }, age: undefined, sex: Symbol('Male') }; let jsonStr = JSON.stringify(obj); console.log(jsonStr); // {"name":"Jack"}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/183396.html