JSON是一种轻量级数据交换格式,语法源自JavaScript对象字面量,支持字符串(双引号)、数字、布尔值、null、数组和对象;JS中用JSON.parse()解析、JSON.stringify()序列化,需注意类型限制与安全规范。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,语法简洁、易读易写,且被几乎所有主流编程语言支持。它不是 JavaScript 的专属格式,但它的语法直接源自 JavaScript 的对象字面量,因此在 JS 中解析和生成 JSON 特别自然、高效。
JSON 由键值对组成,只支持以下数据类型:
例如:
{"name": "张三", "age": 28, "hobbies": ["读书", "游泳"], "isStudent": false}
使用 JSON.parse() 将符合规范的 JSON 字符串转为 JS 值(对象或数组):
示例:
const data = JSON.parse('{"score": 95.5, "tags": ["js", "json"]}');
console.log(data.score); // 95.5
使用 JSON.stringify() 把 JS 值(对象、数组等)序列化为 JSON 字符串:
示例:
const user = { name: "李四", age: 30, city: undefined };
console.log(JSON.stringify(user)); // {"name":"李四","age":30}
// 注意:city 被自动忽略
JSON 和 JS 对象不完全等价,容易出错的地方包括: