JSON 解析错误:读懂消息,直达修复
JSON 解析器错误消息及其解释文章的目录 —— 先用严格校验器,再深入到具体的语法问题。
当你来到这里
你的代码抛出了 JSON 解析器错误,而你想找到确切的修复方法。先读懂解析器的消息 —— 位置和可疑字符都是线索。然后跳转到解释根本错误的文章,并用严格校验器确认修复后的文本能顺利通过 JSON.parse。
读懂解析器消息
每个现代 JSON 解析器都会报告一个位置和出错的字符。把消息和下面的列表对照,打开覆盖该确切措辞的文章。
Unexpected token 错误 —— 总览Unexpected token < —— 你的 fetch 返回了 HTMLUnexpected token u —— 你解析了 undefinedUnexpected token o —— [object Object] 被字符串化了Unexpected end of JSON input —— 被截断或未闭合JSON 之后出现非空白字符 —— 多余数据、NDJSON?JSON 中字符串未结束 —— 引号已开但从未闭合JSON 中错误的转义字符 —— \x、Windows 路径字符串字面量中的错误控制字符 —— 原始制表符/换行符[object Object] 不是有效的 JSON应为双引号属性名 —— 尾随逗号
修复根本错误
大多数解析器错误都来自五个反复出现的语法问题之一。每个问题的指南都会解释原因、修复方法,以及重新运行解析器之前要检查的内容。
为什么严格 JSON 如此严格
JSON 看起来像 JavaScript 对象字面量,但它是一个小得多的语法。没有尾随逗号,没有注释,没有单引号,没有 Python 风格的 True/None。这些历史参考资料解释了为什么该语法保持极简,以及互操作性决策是如何做出的。
RFC 8259 —— 当前的 JSON 标准ECMA-404 第二版《解析 JSON 是个雷区》(解析器分歧)Bishop Fox —— JSON 互操作性研究Tree-sitter JSON 语法 —— 为什么你的编辑器和 JSON.parse 解析方式不同
推荐路径
工具到指南到博客到参考,一气呵成:打开 JSON 校验器获取确切的行列号,阅读根本错误的指南,跟进该错误消息对应的博客文章,然后查阅定义该语法的标准。
-
- 工具:/json-validate —— 确认解析错误及其位置。
-
- 指南:/guides/fix-json-unexpected-token —— 把症状对应到原因。
-
- 博客:/blog/json-parse-unexpected-token —— token 级错误的完整剖析。
-
- 参考:/news/rfc-8259-json-standard —— 为什么该语法是严格的。
JSON 修复指南
主题中心
具体指南
- 如何解码 Base64 字符串(以及 JWT Payload)
- URL 编码:百分号编码查询参数与路径
- 将 YAML 转为 JSON(并避免缩进错误)
- 将 JSON 转为 CSV:把对象数组扁平化
- 将 JSON 转为 XML:根元素、属性与数组
- 将 JSON 转义为字符串字面量(并解码双重编码的 JSON)
- 修复 JSON 中的尾随逗号
- 修复 JSON 中的单引号
- 修复 JSON 中未加引号的键
- 修复 LLM 输出的 JSON
- 修复 JSON 解析错误:Expected Property Name
- JSON 与 JavaScript 对象字面量的区别
- 在发起 API 请求前校验 JSON
- JSON 格式化器 vs JSON 修复工具
- 修复 JSON Unexpected Token 错误
- JSON 转 JavaScript 对象转换器