返回教程

JSON 报错怎么修:五类最常见语法错误

解析 JSON 报错十有八九是这几种:尾逗号、单引号、没加引号的键名、坏转义、看不见的特殊字符。逐个对照修,或直接用自动修复工具一键处理。

尾逗号:最常见的一种

最后一个元素后面多了个逗号。JavaScript 对象里合法,标准 JSON 里非法,几乎所有解析器都会在此报错。报错位置通常指向逗号后面的右括号处,删掉逗号即可。上一行是坏例子,下一行是修好的。

{ "name": "app", "tags": ["a", "b"], }
{ "name": "app", "tags": ["a", "b"] }

单引号:JSON 只认双引号

从 Python 字典或 JS 代码里复制出来的数据常带单引号。标准 JSON 的字符串与键名一律双引号。批量替换时小心值里本身含引号的情况——用宽松解析工具转换比手动替换稳。

{ 'name': 'app' }
{ "name": "app" }

键名没加引号

JS 对象字面量里键名可以裸写,JSON 不行:每个键必须带双引号。配置文件手写时最容易犯。如果你的数据本来就是 JS 对象字面量,用站内「JS 对象转 JSON」工具直接转,不用手补引号。

{ name: "app", version: 2 }
{ "name": "app", "version": 2 }

坏转义与特殊字符

字符串里的反斜杠必须成对转义,双引号前要加反斜杠;从 Word / 网页复制的文本可能混入弯引号、不换行空格、零宽字符,肉眼看不出但解析器过不去。报「意外字符」但那行看着正常时,优先怀疑不可见字符,重敲那一行往往就好了。

定位技巧:报错位置未必是病根

解析器报的行列是它「读不下去」的地方,真正的错误常在前面——比如上一行少了逗号,报错却指向下一行的键名。从报错位置向前找最近的逗号、引号、括号;或者直接把整段贴进首页工作台,错误行高亮加人话解释,还能一键自动修复。

用 JSON 自动修复工具一键处理