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 对象的边界。

posted @ 2024-05-10 14:48  Li_pk  阅读(14)  评论(0)    收藏  举报