JSON(JavaScript Object Notation)是现在最常用的数据交换格式。无论你是前端开发、后端开发、数据分析师,还是运维人员,都免不了要和JSON打交道。但JSON有一个让人头疼的问题:格式混乱的时候根本看不出哪里出错了。
这篇文章介绍JSON格式化工具的使用方法,以及如何快速定位和修复JSON语法错误。
一、什么是JSON格式化
JSON格式化就是把一段压缩成一行的JSON数据,按照层级关系加上缩进和换行,变成人类可读的格式。比如:
// 格式化前(压缩状态)
{"name":"张三","age":25,"address":{"city":"北京","zip":"100000"},"hobbies":["编程","阅读","旅行"]}
// 格式化后
{
"name": "张三",
"age": 25,
"address": {
"city": "北京",
"zip": "100000"
},
"hobbies": [
"编程",
"阅读",
"旅行"
]
}
格式化后的JSON层次分明,一眼就能看出数据结构。调试接口、排查数据问题的时候,格式化是第一步。
二、JSON格式化工具推荐
| 工具 | 类型 | 优点 | 缺点 |
|---|---|---|---|
| ToolBox JSON格式化 | 在线 | 免费、格式化+压缩+校验+树形视图、浏览器端处理 | 需要联网 |
| VS Code | 编辑器 | Shift+Alt+F一键格式化、自动补全、错误提示 | 需要安装编辑器 |
| JSON Formatter(Chrome插件) | 浏览器插件 | 自动格式化网页中的JSON响应 | 仅Chrome |
| jq(命令行) | CLI工具 | 功能强大、脚本化处理 | 学习成本高 |
| Postman | API工具 | 自动格式化API响应 | 软件较重 |
如果你只是偶尔需要格式化一段JSON,在线工具最快。如果日常开发用,VS Code 是首选。
三、JSON常见错误及修复
错误1:属性名没加双引号
// 错误
{ name: "张三", age: 25 }
// 正确
{ "name": "张三", "age": 25 }
JSON规定所有的属性名(key)必须用双引号包裹。单引号或不加引号都不行。这是JavaScript对象字面量和JSON最容易混淆的地方。
错误2:末尾多余的逗号
// 错误
{
"name": "张三",
"age": 25, // <--- 这个逗号是多余的
}
// 正确
{
"name": "张三",
"age": 25
}
JSON不允许最后一个属性后面有逗号。JavaScript允许(trailing comma),但JSON不允许。
错误3:单引号代替双引号
// 错误
{ 'name': '张三' }
// 正确
{ "name": "张三" }
JSON只支持双引号,单引号会报语法错误。
错误4:注释
// 错误
{
"name": "张三" // 这是用户名
}
// 正确(去掉注释)
{
"name": "张三"
}
标准JSON不支持注释。如果需要说明,可以用 "_comment" 这种约定字段名。
错误5:中文标点
// 错误(使用了中文冒号和引号)
{ "name":"张三" }
// 正确
{ "name": "张三" }
中文输入法状态下很容易不小心输入中文标点。冒号、引号、括号必须是英文半角字符。这个错误非常常见,且不容易用肉眼发现。
四、快速排查JSON错误的方法
- 用格式化工具:把JSON粘贴到格式化工具里,如果有语法错误会直接报错并指出位置
- 用编辑器的JSON模式:VS Code打开 .json 文件会自动检测语法错误
- 搜索中文标点:全局搜索中文冒号(:)和中文引号(""'')
- 检查最后一个属性:看有没有多余的逗号
- 用JSON校验器:专门做语法检查,比格式化工具更精准
五、总结
JSON格式化是日常开发中最基础的操作之一。记住以下几点:
- 属性名必须用双引号
- 最后一个属性后面不能有逗号
- 不支持单引号和注释
- 注意中文标点
- 遇到报错用格式化工具快速定位