Unexpected token 的意思是:解析器读到某个字符时,发现它不应该出现在当前位置。
这个错误经常出现在 JSON.parse、接口调试、配置文件导入和在线校验时。错误提示有时会写 Unexpected token }、Unexpected token o、Unexpected token <,不同字符对应的原因也不一样。
最常见原因:尾逗号
{
"name": "Tom",
"age": 18,
}标准 JSON 不允许对象或数组最后一个元素后面保留逗号。删除最后一个逗号后才是合法 JSON。
{
"name": "Tom",
"age": 18
}不同 token 通常代表什么?
| 错误提示 | 常见原因 | 修复思路 |
|---|---|---|
| Unexpected token } | 尾逗号或缺少值 | 检查对象和数组结尾 |
| Unexpected token o | 把对象当字符串再次 JSON.parse | 确认传入的是 JSON 字符串而不是对象 |
| Unexpected token < | 拿到的是 HTML 错误页 | 检查接口地址、登录状态或服务端错误 |
| Unexpected token / | JSON 中包含注释 | 移除 // 或 /* */ 注释 |
| Unexpected token n | Python 风格 None | 改成 JSON 的 null |
排查顺序
- 先确认内容是不是 JSON,而不是 HTML、日志或普通文本。
- 检查是否存在注释、尾逗号、单引号、未加引号 key。
- 检查 True、False、None 是否来自 Python 风格数据。
- 如果来自接口,先看 HTTP 状态码和响应头。
- 修复后再格式化一次,确认结构完整。
总结
Unexpected token 不是一个具体错误,而是一类语法错误的入口提示。先看 token 字符,再结合数据来源排查,通常很快就能定位问题。