本地工具箱 · 指南在线工具的使用说明与排障笔记

JSON 格式化报错别急着改数据:6 种不合规写法的排查顺序

本地工具箱 · 使用指南 · 2026-11-04 · 建议落地路径 /guide/json-format-errors/

接口返回一坨压缩过的 JSON,粘进格式化工具只得到一句「Unexpected token」或者干脆一片空白。多数时候数据本身没错,只是它写得不够「标准」——从配置文件、日志、前端对象字面量里复制出来的 JSON,几乎都带点人类写作习惯。

下面按遇到频率排一下,从最常见的开始查。查的顺序有讲究:先看结构,再看引号,最后才怀疑值。

一、先确认错在第几行第几列

「解析失败」这四个字没有信息量。好的工具会指出行列位置,这决定了后面是逐字符找,还是直接看某一处。

常见的三类错误位置:

拿到行列号再动手,比从头读一遍快得多。

二、键名没加双引号

从 JavaScript 对象字面量直接复制过来的片段,最常见就是这种:

{name:"小花", tags:["JSON"], age:18}

标准 JSON 要求键名必须是双引号字符串。这几个键一个都没加,严格解析器会直接拒掉,但人眼看着完全没毛病——因为 JS 里就是这么写的。

修正后是 {"name":"小花","tags":["JSON"],"age":18}。有些工具会自动补引号并提示改了哪些地方,这种「宽松容错」在读接口片段时确实省事,但要注意:它只是把不严格的写法转成合法 JSON,不会替你猜业务含义。

三、字符串用了单引号

{'status': 'ok', 'msg': 'done'}

单引号是 Python、JS 里最常见的写法,JSON 规范不认。修正时不只是把 ' 换成 ",字符串内部的转义也要跟着还原再重新转义。比如 'it\'s ok' 应变成 "it's ok",简单粗暴地全局替换会留下一个反斜杠。

四、注释和结尾多余的逗号

配置文件里带注释、数组最后多一个逗号,都是写给人看的习惯:

{
  "port": 8080, // 本地调试端口
  "hosts": ["a", "b",],
}

JSON 不允许注释,也不允许尾逗号。删掉注释行、去掉 ] 和 } 前那两个逗号就好。注意 // 出现在字符串里是正常的(比如 URL),别用全局搜索一把梭,误伤字符串内容比多一个逗号麻烦得多。

五、前导零、特殊数字和大整数

这几类属于「能解析,但结果会变」的坑,比直接报错更隐蔽:

如果数据里有订单号、身份证号、长 ID,格式化完要特意核对一次这些字段。好的实现会原样保留合法部分,包括大整数和 \u4e2d 这类转义,只动必要的格式。

六、确认格式化没改动字段值

最后再做一次对照:格式化本身只应该调整缩进、换行、键名引号,以及可选的键顺序。字符串内容、数字精度、转义字符都该原样保留。

要快速验证,可以把两段 JSON 放进对比工具,看差异清单是不是空的。这一步在改过配置文件、或者要提交给同事审查之前尤其值得做。

一个把容错写清楚的工具:本地工具箱

按上面这套顺序排查,本地工具箱的 JSON 格式化用起来比较顺手:左侧粘贴,右侧实时出结果,键名不带引号、单引号字符串、// 与块注释、结尾多余逗号、未加引号的值,都会自动补成合法 JSON,并在提示条里列出具体改了哪些地方。前导零的 007 会按字符串保留,避免编号丢零;字符串整体按原意搬运,里面出现逗号、冒号、括号都不会被误改。

几个实际用得上的细节:

同站还有一组配套页:JSON 对比可以把左右两段 JSON 自动格式化后按字段逐个比对,缺字段、多字段、值不同分别标色,给出新增/删除/修改统计和可复制的差异清单;JSON 转 XML 与 XML 转 JSON 用同一套宽松容错,字段名变标签、@ 开头的字段变属性、数组变同名重复标签。

实操:一次把脏 JSON 收拾干净

  1. 打开 JSON 格式化,把片段粘到左侧。
  2. 看右侧结果和提示条,记下它替你补了哪些写法;如果报错,按提示的行列号回到第一步的顺序查。
  3. 需要交给同事时,用「排序」把键名统一成一致顺序,再点「压缩」得到单行版本,或直接「下载」成文件。
  4. 如果这份配置有前后两个版本,把两版分别粘进 JSON 对比,复制差异清单当改动说明。
  5. 要转成 XML 给老系统,直接在 JSON 转 XML 里粘贴同一段内容,不用先手动修一遍。

第 2 步的提示条值得多看一眼:它告诉你工具改了什么,也就等于告诉你原始数据哪里不合规,回头改源头配置时用得上。

常见问题

问:工具自动补了引号,会不会改动我的数据? 按这个页面的说明,只调整缩进、换行、键名引号与可选的键顺序,字段值一律不动;单引号字符串会改成双引号,转义还原后重新转义,显示效果与原意一致。

问:注释会被当成字符串内容吗? 不会,注释行按注释处理并移除。但字符串内部的 // 会原样保留,比如 URL 不会被误删。

问:需要登录或者付费吗? 不需要。绝大多数工具免费开放,只有站点里标注了「按次付费」的 AI 类功能收费,JSON 格式化不在此列。

问:手机上能用吗? 页面是响应式布局,手机上工具面板自动变成上下两栏,功能与桌面端一致。

小结

JSON 报错多数不是数据坏了,是写法太「人性化」。按行列定位 → 键名引号 → 单引号 → 注释与尾逗号 → 数字精度 → 值有没有被改动这个顺序走一遍,基本都能定位。把 JSON 格式化 和 JSON 对比 一起收进收藏夹,下次遇到脏数据两分钟就能收拾完,不用注册。

需要直接打开工具?前往 本地工具箱首页,66 个工具免注册使用;本页提到的每个功能都有独立地址,可单独收藏。