JSON 通常用于與服務端交換資料。
在向伺服器發送資料時一般是字元串。
我們可以使用 JSON.stringify() 方法将 JavaScript 對象轉換為字元串。
<b>參數說明:</b>
<b>value:</b>
必需, 要轉換的 JavaScript 值(通常為對象或數組)。
<b>replacer:</b>
可選。用于轉換結果的函數或數組。
如果 replacer 為函數,則 JSON.stringify 将調用該函數,并傳入每個成員的鍵和值。使用傳回值而不是原始值。如果此函數傳回 undefined,則排除成員。根對象的鍵是一個空字元串:""。
如果 replacer 是一個數組,則僅轉換該數組中具有鍵值的成員。成員的轉換順序與鍵在數組中的順序一樣。當 value 參數也為數組時,将忽略 replacer 數組。
<b>space:</b>
可選,文本添加縮進、空格和換行符,如果 space 是一個數字,則傳回值文本在每個級别縮進指定數目的空格,如果 space 大于 10,則文本縮進 10 個空格。space 也可以使用非數字,如:\t。
例如我們向伺服器發送以下資料:
var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
我們使用 JSON.stringify() 方法處理以上資料,将其轉換為字元串:
var myJSON = JSON.stringify(obj);
myJSON 為字元串。
我們可以将 myJSON 發送到伺服器:
document.getElementById("demo").innerHTML = myJSON;
我們也可以将 JavaScript 數組轉換為 JSON 字元串:
var arr = [ "Google", "Runoob", "Taobao", "Facebook" ];
var myJSON = JSON.stringify(arr);
JSON 不能存儲 Date 對象。
JSON.stringify() 會将所有日期轉換為字元串。
var obj = { "name":"Runoob", "initDate":new Date(), "site":"www.runoob.com"};
之後你可以再将字元串轉換為 Date 對象。
JSON 不允許包含函數,JSON.stringify() 會删除 JavaScript 對象的函數,包括 key 和 value。
var obj = { "name":"Runoob", "alexa":function () {return 10000;}, "site":"www.runoob.com"};
我們可以在執行 JSON.stringify() 函數前将函數轉換為字元串來避免以上問題的發生:
obj.alexa = obj.alexa.toString();
不建議在 JSON 中使用函數。
主流浏覽器都支援 JSON.stringify() 函數:
Firefox 3.5
Internet Explorer 8
Chrome
Opera 10
Safari 4