JSON.stringify()
JSON 的常見用途是與 Web 伺服器交換資料。
當傳送資料到 Web 伺服器時,資料必須是字串。
使用 JSON.stringify()
將 JavaScript 物件轉換為字串。
字串化 JavaScript 物件
假設我們在 JavaScript 中有這個物件
const obj = {name: "John", age: 30, city: "New York"};
使用 JavaScript 函式 JSON.stringify()
將其轉換為字串。
const myJSON = JSON.stringify(obj);
結果將是一個遵循 JSON 約定的字串。
myJSON
現在是一個字串,可以傳送到伺服器了。
示例
const obj = {name: "John", age: 30, city: "New York"};
const myJSON = JSON.stringify(obj);
自己動手試一試 »
您將在接下來的章節中學習如何將 JSON 傳送到伺服器。
字串化 JavaScript 陣列
也可以字串化 JavaScript 陣列。
假設我們在 JavaScript 中有這個陣列
const arr = ["John", "Peter", "Sally", "Jane"];
使用 JavaScript 函式 JSON.stringify()
將其轉換為字串。
const myJSON = JSON.stringify(arr);
結果將是一個遵循 JSON 約定的字串。
myJSON
現在是一個字串,可以傳送到伺服器了。
您將在接下來的章節中學習如何將 JSON 字串傳送到伺服器。
儲存資料
儲存資料時,資料必須採用特定的格式,無論您選擇儲存在哪裡,文字始終是合法的格式之一。
JSON 使將 JavaScript 物件儲存為文字成為可能。
示例
將資料儲存在本地儲存中
// 儲存資料
const myObj = {name: "John", age: 31, city: "New York"};
const myJSON = JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// 檢索資料
let text = localStorage.getItem("testJSON");
let obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
自己動手試一試 »
異常
字串化日期
在 JSON 中,不允許使用日期物件。 JSON.stringify()
函式會將任何日期轉換為字串。
示例
const obj = {name: "John", today: new Date(), city : "New York"};
const myJSON = JSON.stringify(obj);
自己動手試一試 »
您可以在接收方將字串轉換回日期物件。
字串化函式
在 JSON 中,不允許將函式作為物件值。
JSON.stringify()
函式將從 JavaScript 物件中刪除任何函式,包括鍵和值。
示例
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
const myJSON = JSON.stringify(obj);
自己動手試一試 »
如果您在執行 JSON.stringify()
函式之前將函式轉換為字串,則可以省略此項。
示例
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
obj.age = obj.age.toString();
const myJSON = JSON.stringify(obj);
自己動手試一試 »
如果您使用 JSON 傳送函式,函式將失去其作用域,接收方必須使用 eval() 將它們轉換回函式。