修复 JSON Unexpected Token 错误

Unexpected token 表示严格 JSON 解析器遇到了一个在合法 JSON 该位置不能出现的字符。

Unexpected token 是什么意思

JSON 解析器从左到右读取文档。当它报 Unexpected token 时,说明它在那个位置遇到的字符不符合 JSON 语法。报告中的字符是个线索,但真正的错误往往就在它之前。

常见 token 与对应原因

出现问题的 token 往往指向 JavaScript 语法,或从近似 JSON 的源里复制过来的文本,本质上不是严格 JSON。

  • Unexpected token ' 通常意味着单引号字符串或键应该改用双引号
  • Unexpected token , 通常是出现了尾随逗号
  • Unexpected token / 通常是 JavaScript 注释被复制进了 JSON
  • Unexpected token T、F 或 N 通常是 True、False 或 None 应该改成 true、false 或 null
  • Unexpected token after JSON value 通常是 JSON 文档结束后还多了一段文本

出错示例

{ name: 'Ada', active: True, }

修复后的 JSON

{ "name": "Ada", "active": true }

修复流程

把 payload 贴到 JSON Fix,点 Repair & Format,再点 Validate。如果错误还在,看准确的行列位置,并检查报错 token 紧前面的字符。

相关深度阅读

下面每篇都针对某一种具体的 Unexpected token 变体,配有出错/修复示例和分步骤的处理方法。