JSON.stringify()
JSON 一般用於與服務端交換數據。數組
在向服務器發送數據時通常是字符串。服務器
咱們能夠使用 JSON.stringify() 方法將 JavaScript 對象轉換爲字符串。ide
JSON.stringify(value[, replacer[, space]])
參數說明:函數
- value:
必需, 要轉換的 JavaScript 值(一般爲對象或數組)。ui
- replacer:
可選。用於轉換結果的函數或數組。spa
若是 replacer 爲函數,則 JSON.stringify 將調用該函數,並傳入每一個成員的鍵和值。使用返回值而不是原始值。若是此函數返回 undefined,則排除成員。根對象的鍵是一個空字符串:""。code
若是 replacer 是一個數組,則僅轉換該數組中具備鍵值的成員。成員的轉換順序與鍵在數組中的順序同樣。當 value 參數也爲數組時,將忽略 replacer 數組。對象
- space:
可選,文本添加縮進、空格和換行符,若是 space 是一個數字,則返回值文本在每一個級別縮進指定數目的空格,若是 space 大於 10,則文本縮進 10 個空格。space 也能夠使用非數字,如:\t。ip
JavaScript 對象轉換
例如咱們向服務器發送如下數據:字符串
var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
咱們使用 JSON.stringify() 方法處理以上數據,將其轉換爲字符串:
var myJSON = JSON.stringify(obj);
myJSON 爲字符串。
咱們能夠將 myJSON 發送到服務器:
實例
var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
JavaScript 數組轉換
咱們也能夠將 JavaScript 數組轉換爲 JSON 字符串:
實例
var arr = [ "Google", "Runoob", "Taobao", "Facebook" ]; var myJSON = JSON.stringify(arr);
myJSON 爲字符串。
咱們能夠將 myJSON 發送到服務器:
實例
var arr = [ "Google", "Runoob", "Taobao", "Facebook" ]; var myJSON = JSON.stringify(arr); document.getElementById("demo").innerHTML = myJSON;
異常
解析數據
JSON 不能存儲 Date 對象。
JSON.stringify() 會將全部日期轉換爲字符串。
實例
var obj = { "name":"Runoob", "initDate":new Date(), "site":"www.runoob.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
以後你能夠再將字符串轉換爲 Date 對象。
解析函數
JSON 不容許包含函數,JSON.stringify() 會刪除 JavaScript 對象的函數,包括 key 和 value。
實例
var obj = { "name":"Runoob", "alexa":function () {return 10000;}, "site":"www.runoob.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
咱們能夠在執行 JSON.stringify() 函數前將函數轉換爲字符串來避免以上問題的發生:
實例
var obj = { "name":"Runoob", "alexa":function () {return 10000;}, "site":"www.runoob.com"}; obj.alexa = obj.alexa.toString(); var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;