JSON是一种轻量级数据交换格式,语法源于JS对象字面量,键名和字符串值必须用双引号,仅支持字符串、数字、布尔值、null、数组、对象;解析用JSON.parse()(需try-catch),序列化用JSON.stringify()(忽略函数/undefined等)。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,不是 JavaScript 的专属,但语法源于 JS 对象字面量。它以纯文本形式存储和传输数据,结构清晰、易读易写,被几乎所有编程语言支持。
JSON 的基本规则
JSON 有严格的语法规则,常见错误多源于忽略这些细节:
- 键名必须用双引号包裹(red">"name" ✅,name ❌)
- 字符串值必须用双引号("hello" ✅,'hello' 或 hello ❌)
- 不支持单引号、注释、undefined、函数、NaN、Infinity 或日期对象(需转为字符串或时间戳)
- 只允许以下类型:字符串、数字、布尔值(true/false)、null、数组、对象
如何解析 JSON 字符串(JSON → JavaScript 值)
使用 JSON.parse() 将符合规范的 JSON 字符串转为 JS 对象或数组:
const jsonStr = '{"name":"张三","age":28,"isActive":true}';
const data = JSON.parse(jsonStr);
console.log(data.name); // "张三"
console.log(data.age); // 28
⚠️ 注意:若字符串格式非法,JSON.parse() 会直接抛出 SyntaxError。建议加 try-catch:
本文档主要讲述的是使用JSON进行网络数据交换传输;JSON(JavaScript ObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,非常适合于服务器与客户端的交互。JSON采用与编程语言无关的文本格式,但是也使用了类C语言的习惯,这些特性使JSON成为理想的数据交换格式。 和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON的数据格式非常简单,您可以用 JSON 传输一个简单的 St
立即学习“Java免费学习笔记(深入)”;
try {
const data = JSON.parse(input);
} catch (err) {
console.error('JSON 解析失败:', err.message);
}
如何生成 JSON 字符串(JavaScript 值 → JSON)
使用 JSON.stringify() 将 JS 对象、数组等可序列化值转为 JSON 字符串:
const user = { name: "李四", scores: [85, 92], joined: new Date() };
const jsonStr = JSON.stringify(user);
// {"name":"李四","scores":[85,92],"joined":"2024-06-15T08:23:10.123Z"}
⚠️ 注意:无法序列化的属性(如函数、undefined、Symbol、循环引用)会被自动忽略;Date 对象会转为 ISO 字符串;可传入第二个参数(replacer)定制字段,第三个参数(space)美化输出:
JSON.stringify({a: 1, b: 2}, null, 2);
// 换行缩进,便于阅读










