JavaScript高级程序设计笔记 23
第 23 章 JSON
核心脉络
JSON 是现代 Web 中最常用的数据交换格式。本章重点是 JSON 语法,以及 JSON.stringify() 和 JSON.parse() 的使用与扩展选项。
重点内容
JSON 语法
JSON 支持:
- 字符串。
- 数字。
- 布尔值。
null。- 对象。
- 数组。
JSON 不支持:
undefined。- 函数。
- Symbol。
- 注释。
- 尾随逗号。
示例:
{
"name": "Alice",
"age": 20,
"skills": ["JavaScript", "CSS"]
}
JSON.stringify
const json = JSON.stringify({ name: "Alice" });
第二个参数可用于过滤或转换:
JSON.stringify(user, ["name", "age"]);
第三个参数可格式化缩进:
JSON.stringify(user, null, 2);
toJSON
对象可以定义 toJSON() 控制序列化结果。
const user = {
password: "secret",
toJSON() {
return { safe: true };
},
};
JSON.parse
const obj = JSON.parse('{"name":"Alice"}');
第二个参数 reviver 可转换解析结果:
JSON.parse(json, (key, value) => {
if (key === "date") return new Date(value);
return value;
});
面试重点
- JSON 是数据格式,不是 JavaScript 对象字面量。
- JSON 字符串必须使用双引号。
undefined、函数、Symbol 序列化时会被忽略或变成null。JSON.parse()解析不可信字符串时要注意异常处理。
复习清单
一句话总结
第 23 章的核心是 JSON 数据交换:用 stringify 序列化,用 parse 解析,并理解它和 JavaScript 对象的边界。

浙公网安备 33010602011771号