JSON.stringify()
JSON 的常規用途是同 web 服務器進行數據交換。
在向 web 服務器發送數據時,數據必須是字符串。
通過 JSON.stringify()
把 JavaScript 對象轉換為字符串。
對 JavaScript 對象進行字符串化
想象一下我們在 JavaScript 中有這個對象:
var obj = { name:"Bill Gates", age:62, city:"Seattle"};
請使用 JavaScript 函數 JSON.stringify()
將它轉換為字符串。
var myJSON = JSON.stringify(obj);
結果將是遵守 JSON 標記法的一段字符串。
myJSON 目前是一段字符串,并準備好送往服務器:
實例
var obj = { name:"Bill Gates", age:62, city:"Seattle"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
您將在下一章學到如何向服務器發送 JSON。
Stringify JavaScript 數組
也可以對 JavaScript 數組進行字符串化:
想象一下我們在 JavaScript中有這個數組:
var arr = [ "Bill Gates", "Steve Jobs", "Elon Musk" ];
請使用 JavaScript 函數 JSON.stringify()
將其轉換為字符串。
var myJSON = JSON.stringify(arr);
結果將是遵守 JSON 標記法的字符串。
myJSON 目前是一段字符串,并準備好送往服務器:
實例
var arr = [ "Bill Gates", "Steve Jobs", "Elon Musk" ]; var myJSON = JSON.stringify(arr); document.getElementById("demo").innerHTML = myJSON;
您將在下一章學到如何向服務器發送 JSON。
例外
日期字符串化
在 JSON 中,不允許日期對象。JSON.stringify()
函數將把任何日期轉換為字符串。
實例
var obj = { "name":"Bill Gates", "today":new Date(), "city":"Seattle"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
您可以在接收端把字符串轉換回日期對象。
函數字符串化
在 JSON 中,不允許函數作為對象值。
JSON.stringify()
函數將從 JavaScript 對象刪除任何函數,包括鍵和值:
實例
var obj = { "name":"Bill Gates", "age":function () {return 62;}, "city":"Seattle"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
如果您在運行 JSON.stringify()
函數前已將函數轉換為字符串,這個環節可以省略。
實例
var obj = { "name":"Bill Gates", "age":function () {return 62;}, "city":"Seattle"}; obj.age = obj.age.toString(); var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
您應該避免在 JSON 中使用函數,函數會失去其作用域,而且您還需要使用 eval()
將它們轉換回函數。
瀏覽器支持
所有主流瀏覽器和最新的 ECMAScript (JavaScript) 標準都包含 JSON.stringify()
函數:
下表中的數字指定了完全支持 JSON.stringify()
函數的首個瀏覽器版本:
Yes | 8.0 | 3.5 | 4.0 | 10.0 |