修復 JSON 解析錯誤:Expected Property Name
這個錯誤通常代表解析器遇到了不符合 JSON 規範的物件鍵:未加引號的鍵、註解、尾隨逗號,或是嚴格 JSON 中混入了 JavaScript 語法。
這個錯誤是什麼意思
JSON 物件成員必須以一個用雙引號包起來的屬性名開頭。當解析器報 expected property name 或 expected property name or '}' 時,它通常正站在開頭的 { 或 , 之後,等著看到像 "name" 這樣的鍵。如果它看到的是 name、// 註解、/* 註解 */,或是緊接在尾隨逗號後的 },它會停下來 —— 那些是 JavaScript 的寫法,不是嚴格 JSON。
最常見的原因
排查這個錯誤最快的方法是看回報的行列位置上是什麼字元,再回頭看上一個 token。多數狀況都是以下四個小錯之一。
- 未加引號的物件鍵,例如 { name: "Ada" }
- 單引號的鍵或字串,例如 { 'name': 'Ada' }
- 從 JavaScript 或 JSONC 檔案複製過來的註解
- } 或 ] 之前的尾隨逗號
錯誤範例
{ name: 'Ada', active: true, // copied from a JS object }
修正後的 JSON
{ "name": "Ada", "active": true }
修復檢核表
把每個鍵都加上雙引號,把單引號字串換成雙引號字串,刪掉註解,去掉末尾逗號,並確認布林值與 null 是小寫。修完後,在把這個值存入設定檔、送上 API 或貼進資料庫遷移腳本之前,先做一次嚴格驗證。
自動修復什麼時候是安全的
意圖清楚時,純粹做語法清理的自動修復是安全的。不要把它當業務驗證。如果某個鍵名、數字、日期或列舉可能有歧義,先修語法,再把修好的結果跟來源系統或 API schema 做對照。
JSON 修復指南
主題中心
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
具體指南
- 如何解碼 Base64 字串(以及 JWT Payload)
- URL 編碼:對查詢參數與路徑做百分號編碼
- 將 YAML 轉為 JSON(並避免縮排錯誤)
- 將 JSON 轉為 CSV:把物件陣列扁平化
- 將 JSON 轉為 XML:根元素、屬性與陣列
- 將 JSON 跳脫為字串字面值(並解碼被雙重編碼的 JSON)
- 修復 JSON 中的尾隨逗號
- 修復 JSON 中的單引號
- 修復 JSON 中未加引號的鍵
- 修復 LLM 輸出的 JSON
- JSON 與 JavaScript 物件字面值的差異
- 在發送 API 請求前驗證 JSON
- JSON 格式化器 vs JSON 修復工具
- 修復 JSON Unexpected Token 錯誤
- JSON 轉 JavaScript 物件轉換工具