修復 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 變體做詳細說明,搭配錯誤/修正範例與逐步解法。