JSON 在线解析 打开工具

JSON 语法错误怎么定位:从报错行列到具体字符

JSON 报错之所以难查,是因为浏览器自带的报错只说「某个位置有意外字符」,不给上下文。可靠的定位要同时给出三样:中文原因、行号列号、原文里那一处的位置指示。按这个顺序看,绝大多数语法错误三十秒内能改完。

五类最常见的语法错误

  1. 尾逗号:{"a":1,}。JSON 不允许最后一个成员后面还有逗号,这是从 JavaScript 对象字面量带过来的习惯。
  2. 单引号:{'a':1}。JSON 的键和字符串必须用双引号。
  3. 未加引号的键:{a:1}。JavaScript 允许,JSON 不允许。
  4. 注释:// 说明 或 /* */。JSON 标准里没有注释,这是 jsonc 才有的扩展。
  5. 换行未转义:字符串里直接敲了回车。字符串内的换行必须写成 \n。

这五类占了实际报错的绝大部分,而且都出现在"看起来很像 JavaScript"的地方——因为写 JSON 的人多半刚从 JS 对象切过来。

行号列号怎么用

报错位置指的是解析器读不下去的那个字符,不一定就是错误本身。典型情况:少了一个右括号,解析器会一直读到文件末尾才报错,此时行列号指向末尾而不是缺失处。

实用技巧:报错在末尾,问题在开头。遇到行列号落在最后几行时,从文件开头重新数括号——用编辑器的括号匹配功能逐层核对,比盯着末尾看有效得多。

校验通过不等于数据正确

JSON 校验只检查语法:括号是否配对、引号是否闭合、逗号位置是否正确。它不检查字段名有没有拼错、类型对不对、必填项在不在——那些属于 Schema 校验,是另一件事。

所以「校验通过」只说明这段文本能被任何 JSON 解析器读出来。业务字段是否正确,需要在拿到对象之后自己判断。

校验失败时输入不会丢

任何失败场景下输入框内容都原样保留,不会因为一次解析失败清空。改完再点校验即可,可以反复试。

整个校验在浏览器里完成,页面不发出任何携带数据的网络请求,断网也能用。涉及密钥、手机号、订单信息的 JSON 可以放心贴。

上面这些都不用装软件,也不用注册:打开页面就能用。

打开 JSON 在线解析 →

常见问题

报错说「意外的 <」是什么意思?

通常是把 HTML 页面当成了 JSON——比如接口返回了 404 页面或登录页。先把返回内容完整看一遍,确认拿到的是 JSON 而不是错误页或重定向后的 HTML。

为什么本地看着没问题,解析还是失败?

常见原因是不可见字符:从网页或文档复制时混进的零宽空格、全角引号、全角逗号。这些字符肉眼与半角几乎一样,但 JSON 解析器一律不认。用编辑器的「显示不可见字符」功能排查。

能校验 JSON5 或带注释的配置吗?

不能。这个工具严格按 JSON 标准校验,注释、单引号、尾逗号都会被判为错误。JSON5 / jsonc 需要专门的解析器。