jQuery中的json.stringify()方法可以將對象(Object)、數(shù)組(Array)和值(Value)轉(zhuǎn)換成符合JSON格式的字符串。它接受三個參數(shù),分別是需要轉(zhuǎn)換的對象、轉(zhuǎn)換函數(shù)和縮進空格數(shù)。
// 對象轉(zhuǎn)換成JSON格式字符串 var obj = { name: "John", age: 30, city: "New York" }; var jsonStr = JSON.stringify(obj); console.log(jsonStr); // 輸出結果:{"name":"John","age":30,"city":"New York"} // 數(shù)組轉(zhuǎn)換成JSON格式字符串 var arr = ["John", 30, "New York"]; var jsonStr = JSON.stringify(arr); console.log(jsonStr); // 輸出結果:["John",30,"New York"]
在實際的開發(fā)中,我們可能需要將對象或數(shù)組轉(zhuǎn)換成JSON格式后傳輸給服務器或存儲到本地。這時候,我們可以利用json.stringify()方法將其轉(zhuǎn)換成字符串,再傳輸或存儲,以便后續(xù)使用。
需要注意的是,對象中的函數(shù)屬性和原型鏈上的屬性都不會被轉(zhuǎn)換成JSON格式的字符串。此外,由于JSON規(guī)范不支持NaN、undefined和Infinity,所以對象或數(shù)組中有這些值時會被轉(zhuǎn)換成null。
// 對象中的函數(shù)屬性和原型鏈上的屬性不會被轉(zhuǎn)換成JSON格式字符串,NaN、undefined和Infinity會被轉(zhuǎn)換成null var obj = { name: "John", age: 30, city: "New York", func: function() { console.log("Hello!"); }}; var jsonStr = JSON.stringify(obj); console.log(jsonStr); // 輸出結果:{"name":"John","age":30,"city":"New York"} // NaN、undefined和Infinity會被轉(zhuǎn)換成null var arr = [NaN, undefined, Infinity]; var jsonStr = JSON.stringify(arr); console.log(jsonStr); // 輸出結果:[null,null,null]
在開發(fā)中,我們還可以利用json.stringify()方法對數(shù)據(jù)進行格式化。這時候需要傳入第三個參數(shù),它表示縮進空格數(shù)。比如,我們可以傳入4作為縮進空格數(shù),以便在控制臺中更好地查看JSON格式的字符串。
// 對象轉(zhuǎn)換成JSON格式字符串并格式化 var obj = { name: "John", age: 30, city: "New York" }; var jsonStr = JSON.stringify(obj, null, 4); console.log(jsonStr); // 輸出結果: // { // "name": "John", // "age": 30, // "city": "New York" // } // 數(shù)組轉(zhuǎn)換成JSON格式字符串并格式化 var arr = ["John", 30, "New York"]; var jsonStr = JSON.stringify(arr, null, 4); console.log(jsonStr); // 輸出結果: // [ // "John", // 30, // "New York" // ]