JSON 的常见用途是与 Web 服务器交换数据。
向 Web 服务器发送数据时,数据必须是字符串。
将 JavaScript 对象转换为字符串JSON.stringify()
。
假设我们在 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 中有这个数组:
const arr = ["John", "Peter", "Sally", "Jane"];
使用 JavaScript 函数JSON.stringify()
将其转换为字符串。
const myJSON = JSON.stringify(arr);
结果将是一个遵循 JSON 符号的字符串。
myJSON
现在是一个字符串,可以发送到服务器:
您将在接下来的章节中学习如何将 JSON 字符串发送到服务器。
存储数据时,数据必须是某种格式,无论您选择将其存储在哪里,文本始终是合法格式之一。
JSON 使得将 JavaScript 对象存储为文本成为可能。
将数据存储在本地存储中
// Storing data:
const myObj = {name: "John", age: 31, city: "New York"};
const myJSON = JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Retrieving data:
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()
function 将从 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() 将它们转换回函数。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!