天天看點

JSON.stringify()

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