JSON.stringify()
JSON 的常见用途是与 Web 服务器交换数据。
当向 Web 服务器发送数据时,数据必须是字符串。
使用以下方法将 JavaScript 对象转换为字符串 JSON.stringify()
.
将 JavaScript 对象字符串化
假设我们在 JavaScript 中有这个对象:
const obj = {名称:“约翰”,年龄:30,城市:“纽约”};
使用 JavaScript 函数 JSON.stringify()
将其转换为字符串。
const myJSON = JSON.stringify(obj);
结果将是遵循 JSON 符号的字符串。
myJSON
现在是一个字符串,可以发送到服务器了:
您将在接下来的章节中学习如何将 JSON 发送到服务器。
将 JavaScript 数组字符串化
也可以将 JavaScript 数组字符串化:
想象一下我们在 JavaScript 中有这个数组:
const arr = ["约翰", "彼得", "莎莉", "简"];
使用 JavaScript 函数 JSON.stringify()
将其转换为字符串。
const myJSON = JSON.stringify(arr);
结果将是遵循 JSON 符号的字符串。
myJSON
现在是一个字符串,可以发送到服务器了:
您将在接下来的章节中学习如何将 JSON 字符串发送到服务器。
存储数据
存储数据时,数据必须采用特定的格式,无论你选择将数据存储在何处, 文本 始终是合法格式之一。
JSON 可以将 JavaScript 对象存储为文本。
例子
将数据存储在本地存储中
// 存储数据:
const myObj = {姓名:“约翰”,年龄:31,城市:“纽约”};
const myJSON = JSON.stringify(myObj);
localStorage.setItem(“testJSON”,myJSON);
// 检索数据:
让文本 = localStorage.getItem("testJSON");
让 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: "纽约"};
const myJSON = JSON.stringify(obj);
亲自尝试 »
如果在运行之前将函数转换为字符串,则可以省略此操作 JSON.stringify()
功能。
例子
const obj = {name: "John", age: function () {return 30;}, city: "纽约"};
obj.年龄 = obj.年龄.toString();
const myJSON = JSON.stringify(obj);
亲自尝试 »
如果使用 JSON 发送函数,则函数将失去其范围,接收方必须使用 eval() 将它们转换回函数。