为什么需要 JSON 格式化?
JSON 数据在网络传输时通常是压缩形式(去掉所有空格和换行),以减小体积,例如:
{"name":"张三","age":30,"city":"北京","hobbies":["编程","阅读"]}
格式化(美化)后变为:
{
"name": "张三",
"age": 30,
"city": "北京",
"hobbies": [
"编程",
"阅读"
]
}
格式化后的 JSON 层级清晰,大大提高调试效率。
JSON 数据在网络传输时通常是压缩形式(去掉所有空格和换行),以减小体积,例如:
{"name":"张三","age":30,"city":"北京","hobbies":["编程","阅读"]}
格式化(美化)后变为:
{
"name": "张三",
"age": 30,
"city": "北京",
"hobbies": [
"编程",
"阅读"
]
}
格式化后的 JSON 层级清晰,大大提高调试效率。
JSON 语法非常严格,任何一个错误都会导致解析失败。以下是最常见的错误:
// ❌ 错误:JSON 只允许双引号
{'name': '张三'}
// ✅ 正确
{"name": "张三"}
// ❌ 错误:最后一个元素后不能有逗号
{
"name": "张三",
"age": 30,
}
// ✅ 正确
{
"name": "张三",
"age": 30
}
// ❌ 错误:JSON 不支持注释
{
// 用户名
"name": "张三"
}
// ✅ 如需注释,用约定的字段名代替
{
"_comment": "用户信息",
"name": "张三"
}
// ❌ 错误:字符串中的双引号和反斜杠必须转义
{"path": "C:\Users\张三"}
// ✅ 正确
{"path": "C:\\Users\\张三"}
| 类型 | 示例 | 注意 |
|---|---|---|
| 字符串 | "hello" | 必须用双引号 |
| 数字 | 42 / 3.14 | 不加引号 |
| 布尔值 | true / false | 全小写 |
| null | null | 全小写 |
| 数组 | [1, 2, 3] | 方括号 |
| 对象 | {"key": "value"} | 花括号,键必须用双引号 |
| 格式 | 优点 | 适用场景 |
|---|---|---|
| JSON | 轻量、人类可读、浏览器原生支持 | API、配置文件、Web 数据交换 |
| XML | 支持属性、命名空间,历史悠久 | 企业系统、SOAP API |
| YAML | 可写注释、更简洁 | 配置文件(Docker、K8s) |
| CSV | 表格数据简单高效 | 数据导出、Excel 交换 |
A:是的,JSON 规范要求所有键名必须是双引号括起来的字符串。JavaScript 对象允许不加引号的键,但这不是合法 JSON。
A:标准 JSON 不支持注释。如果需要带注释的配置文件,可以使用 JSONC(JSON with Comments,VS Code 支持)或 JSON5 格式。
A:使用 JSON.parse(jsonString) 将 JSON 字符串解析为 JavaScript 对象;使用 JSON.stringify(object, null, 2) 将对象序列化为格式化 JSON(第三个参数 2 表示缩进空格数)。