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 物件轉換工具