JSON 教程
JSON 通常用于與服務端交換數(shù)據(jù)。
在向服務器發(fā)送數(shù)據(jù)時一般是字符串。
我們可以使用 JSON.stringify() 方法將 JavaScript 對象轉換為字符串。
JSON.stringify(value[, replacer[, space]])
參數(shù)說明:
必需, 要轉換的 JavaScript 值(通常為對象或數(shù)組)。
可選。用于轉換結果的函數(shù)或數(shù)組。
如果 replacer 為函數(shù),則 JSON.stringify 將調(diào)用該函數(shù),并傳入每個成員的鍵和值。使用返回值而不是原始值。如果此函數(shù)返回 undefined,則排除成員。根對象的鍵是一個空字符串:""。
如果 replacer 是一個數(shù)組,則僅轉換該數(shù)組中具有鍵值的成員。成員的轉換順序與鍵在數(shù)組中的順序一樣。當 value 參數(shù)也為數(shù)組時,將忽略 replacer 數(shù)組。
可選,文本添加縮進、空格和換行符,如果 space 是一個數(shù)字,則返回值文本在每個級別縮進指定數(shù)目的空格,如果 space 大于 10,則文本縮進 10 個空格。space 也可以使用非數(shù)字,如:t。
例如我們向服務器發(fā)送以下數(shù)據(jù):
我們使用 JSON.stringify() 方法處理以上數(shù)據(jù),將其轉換為字符串:
myJSON 為字符串。
我們可以將 myJSON 發(fā)送到服務器:
我們也可以將 JavaScript 數(shù)組轉換為 JSON 字符串:
myJSON 為字符串。
我們可以將 myJSON 發(fā)送到服務器:
JSON 不能存儲 Date 對象。
JSON.stringify() 會將所有日期轉換為字符串。
之后你可以再將字符串轉換為 Date 對象。
JSON 不允許包含函數(shù),JSON.stringify() 會刪除 JavaScript 對象的函數(shù),包括 key 和 value。
我們可以在執(zhí)行 JSON.stringify() 函數(shù)前將函數(shù)轉換為字符串來避免以上問題的發(fā)生:
不建議在 JSON 中使用函數(shù)。
主流瀏覽器都支持 JSON.stringify() 函數(shù):