如何在线格式化 JSON,5 个程序员每天撞到的真实场景
JSON 缩进乱了不用打开 IDE,浏览器里 2 秒整齐输出。这篇讲我自己一周内遇到的 5 个场景,以及配套的 4 个数据格式工具。
如何在线格式化 JSON,5 个程序员每天撞到的真实场景
我上周统计了一下自己 Chrome 的历史记录,光"json formatter"这个搜索词就敲过 17 次。每次都是同一个动作: 从 Postman 复制一段返回,粘进网页,看看到底哪一层 nested 出了问题。
这篇不讲 JSON 语法,讲 5 个真实场景,以及在 json-formatter 里 30 秒就能搞定的做法。
JSON 是什么,先用一句话说完
JSON 全称 JavaScript Object Notation,是一种用文本表示结构化数据的格式。键值对、数组、嵌套对象,够表达世界上 90% 的接口数据。
合法 JSON 必须满足:
- 字符串必须用双引号,不能用单引号
- 键名也必须用双引号
- 最后一个元素后面不能有逗号
- 不能写注释
这四条规则是 80% 报错的来源。下面 5 个场景,有 3 个本质上就是这四条里的某一条挂了。
场景 1: 调试接口返回, 5MB 的响应肉眼找字段
后端同事甩过来一个 URL,Postman 里返回一坨 5MB 的 JSON,全是压缩过的一行。Chrome 自带的 DevTools 也能展开,但操作起来一层一层点很慢。
我的做法是直接全选复制,粘到 json-formatter 里。它会:
- 自动 pretty-print,2 空格缩进
- 左侧显示行号,方便和同事说"第 3421 行那个字段"
- 高亮语法错误,告诉你"第 8 行第 23 列多了一个逗号"
5MB 文件在我 2019 款 MacBook Pro 上 800ms 左右出结果。比开 VS Code 快多了。
场景 2: 整理 config 文件, 把一行长字符串拆成多行
写 GitHub Actions workflow 或者 Docker Compose 时,经常会从 ChatGPT 复制一个 config 过来,结果它给了一行压在一起的 JSON。粘进编辑器一看,根本没法 review。
json-formatter 的"美化"按钮就解决这种问题。压缩态和美化态可以来回切换,review 完用美化态,提交进 git 前再切回压缩态。
如果你写的是 YAML 配置(比如 k8s manifest 或者 docker-compose),用 yaml-formatter 同理。YAML 比 JSON 更看缩进,改错一个空格整个文件就报错,所以 format 检查这一步对 YAML 来说几乎是必做的。
场景 3: 校验合法性, 接口报 400 但你不知道哪错了
凌晨 1 点上线,POST 一个请求,服务端返回 400 Bad Request: invalid JSON。但你看自己的 body 觉得没毛病。
把 body 粘进 json-formatter,它会精确告诉你:
Unexpected token } at line 12, column 5, 意思是多了一个右括号Trailing comma at line 23, 意思是最后一个元素后面多了逗号Expected double-quoted property name at line 7, 意思是键名用了单引号
凌晨 1 点这种时候不要靠肉眼看,工具 200ms 给你答案。
场景 4: 提取嵌套字段, 把 data.list[3].user.email 单独拎出来
接口返回是这样的结构:
{
"code": 0,
"data": {
"list": [
{"user": {"email": "a@x.com"}, ...},
{"user": {"email": "b@x.com"}, ...}
]
}
}
我想要的只是所有 email。这种时候 json-formatter 有个 JSONPath 输入框,填 $.data.list[*].user.email,直接返回数组:
["a@x.com", "b@x.com"]
不用写 Python 不用开 Node REPL。
场景 5: JSON 转 CSV, 给运营同学发 Excel
接口拿到一个对象数组,运营要 Excel。如果你打开 Python pandas 写 5 行代码当然也行,但我更常用 csv-to-json 工具,它支持双向转换,JSON 数组粘进去,直接出 CSV,运营拿去用 Excel 打开。
类似地,如果对端给的是 XML(老系统、企业 SOAP 接口里很常见),先用 xml-formatter 整理出层次,再决定要不要进一步转换。
5 个保命小技巧
最后留 5 个我用了 3 年的小习惯:
- 粘进去之前先 trim。前后带空格、带 BOM 头的 JSON 会让某些 parser 直接报错,先在编辑器里 trim 一下再粘
- 大文件不要直接粘。超过 10MB 的 JSON 浏览器会卡,这种情况下用本地
jq命令更合适 - 公司密钥不要粘到不知名的 JSON 工具上。这就是我为什么自己写一个本地解析、不上传服务器的工具,粘进去你打开 DevTools 看 Network,是空的
- 校验失败时看列号比看行号有用。报"第 12 行第 47 列"比报"第 12 行错"精确 10 倍
- 压缩前先美化一遍。直接压缩可能把已经错的 JSON 压得更看不出来,先美化校验,再压缩
一句话总结
JSON 格式化不是高级技能,是程序员每天都要做的小动作。重点是把这个小动作的成本从"开 IDE / 写 5 行代码"压到"粘贴 + 2 秒"。
json-formatter 就在那里,加个书签,下次就不用再 Google 了。
Made by Toolora · Updated 2026-05-26