JSON.解析()
JSON 的常见用途是与 Web 服务器交换数据。
当从 Web 服务器接收数据时,数据始终是一个字符串。
使用以下方式解析数据 JSON.parse()
,数据变成 JavaScript 对象。
示例 - 解析 JSON
假设我们从网络服务器收到了以下文本:
{"name":"John","age":30,"city":"New York"}
使用 JavaScript 函数 JSON.parse()
将文本转换为 JavaScript 对象:
const obj = JSON.parse('{"name":"John", "age":30, "city":"New York"}');
确保文本是 JSON 格式,否则将出现语法错误。
在您的页面中使用 JavaScript 对象:
JSON 数组
使用时 JSON.parse()
对于从数组派生的 JSON,该方法将返回 JavaScript 数组,而不是 JavaScript 对象。
例外
解析日期
JSON 中不允许使用日期对象。
如果需要包含日期,请将其写为字符串。
您可以稍后将其转换回日期对象:
例子
将字符串转换为日期:
const text = '{"name":"约翰", "birth":"1986-12-14", "city":"纽约"}';
const obj = JSON.parse(text);
obj.出生 = 新日期(obj.出生);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
亲自尝试 »
或者,您可以使用第二个参数 JSON.parse()
函数,称为复活者.
这 复活者 参数是一个函数,它在返回值之前检查每个属性。
例子
使用以下方法将字符串转换为日期 复活者 功能:
const text = '{"name":"约翰", "birth":"1986-12-14", "city":"纽约"}';
const obj = JSON.parse(text, function (key, value) {
如果 (key == “出生”) {
返回新的日期(值);
} 别的 {
返回值;
}
});
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
亲自尝试 »
解析函数
JSON 中不允许使用函数。
如果需要包含一个函数,请将其写为字符串。
您可以稍后将其转换回函数:
例子
将字符串转换为函数:
const text = '{"name":"John", "age":"function () {return 30;}", "city":"纽约"}';
const obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");
document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();
亲自尝试 »
您应该避免在 JSON 中使用函数,函数将失去其范围,并且您必须使用 eval()
将它们转换回函数。