在线工具

工具箱 › 开发 › JSON 格式化

JSON 格式化与校验

在线 JSON 格式化、压缩与校验工具,语法错误会定位到具体行列并选中出错字符,另支持字符串转义与反转义。全部在浏览器内完成。

—类型
—顶层条目
—原始体积
—压缩后

三步走完:先看红字,再格式化

把 JSON 粘进输入框,不用点任何按钮 —— 输入停顿约 120 毫秒就自动校验一遍,有语法错误立刻报出行列位置。

确认无误后选缩进:2 空格、4 空格或 Tab,选完点「格式化」;想要最小体积就点「压缩」,结果上方会给出原始字符数、压缩后字符数和省出的百分比。

结果可以整段复制,也能下载成 data.json。同一份数据还有「转义 / 反转义」,用来把 JSON 字符串再塞进别的代码里。

报错为什么精确到行列,却又看不到原文

浏览器原生的 JSON.parse 报错会顺带把你粘贴的原文片段回显在错误信息里。如果这段 JSON 里有 token、手机号或者密钥,等于自己给自己截屏泄露一次。

所以这里在原生报错之后,额外跑一遍自己写的扫描器重新定位错误位置,再把引擎回显的那段原文从提示里剥掉 —— 你只看到「第几行第几列出问题」,看不到那行内容本身。

定位完成后光标会自动选中出错的那个字符,回到输入框直接改就行;校验失败时上一次的有效结果也会保留,不会因为一次误触把正在看的内容清掉。

压缩到底动了什么

压缩走 JSON.stringify,只去掉缩进、换行和多余空白:不重排键顺序,不改动数值写法。解析出来的对象再序列化,键顺序与原文档一致。

所以「省出百分比」是纯空白的收益 —— 层级越深、缩进越宽省得越多;本来就是一行的紧凑 JSON,压缩前后体积几乎没差别,这是正常的,不是没生效。

结果区还会给出顶层条目数和数据类型,方便一眼确认粘进来的是对象、数组还是单个值。

接口报文、带密钥的配置也能直接粘

整个页面没有任何网络请求,JSON 从头到尾只在你的浏览器内存里,不写本地存储、不上传服务器。接口返回的报文、含密钥的配置文件都可以直接粘进来格式化。

配套的两个细节也是同一个目的:错误提示不回显原文,失败时保留上一次有效结果。

什么时候该换工具

没有输入大小上限,但几 MB 以上的超长 JSON 在浏览器里格式化会明显卡顿 —— 防抖只能降低触发频率,改变不了单次解析的成本。这个量级建议用命令行 jq 或编辑器的格式化插件。

按条件筛字段、排序、去重也不在本页能力内,那是 JMESPath 之类查询语言的活。本页只做四件事:校验、缩进、压缩、转义与反转义。

常见问题

格式化会打乱我的字段顺序吗?

不会。用的是 JSON.stringify,它保持对象原有的键顺序,只调整空白。想重排顺序得自己在代码里处理。

中文会被转义成 \uXXXX 吗?

不会。中文原样输出,转义只在 JSON 里本来就该转义的字符上生效(引号、反斜杠、控制字符)。

为什么报错不显示出错的那段内容?

刻意设计的。原生报错会回显原文,若 JSON 含 token 或手机号等于二次泄露;本页改用自写扫描器,只报行列位置并自动选中出错字符。

多大规模的 JSON 会卡?

没有硬上限,但几 MB 以上单次解析成本就上来了,浏览器会短暂无响应。这个量级请改用 jq 或编辑器插件。