修復 LLM 輸出的 JSON
AI 回應看似 JSON,但常常夾雜 markdown 圍籬、註解、Python 風格字面值或 JavaScript 物件語法。
LLM JSON 常見的問題
Markdown 程式碼圍籬、註解、單引號、未加引號的鍵、尾隨逗號,以及 Python 的 True、False、None,都會讓一個本來有用的 AI 回應無法通過嚴格 JSON 解析。
修復流程
把回應貼到 JSON Fix,按 Repair & Format,再按 Validate 確認輸出是嚴格 JSON,之後再拿去用在程式碼或 API 請求裡。
隱私提示
修復完全在瀏覽器本機完成,所以在除錯含有內部範例或私有 API 負載的 prompt 時也可以放心用。
工具與作法
在瀏覽器中整理時,把 LLM 輸出貼到 JSON Fix,按 Repair & Format —— 它會一次把 markdown 程式碼圍籬(```json ... ```)、尾隨逗號與 Python 字面值(True/False/None)通通拿掉。在 Node 裡,npm 套件 jsonrepair 能以無相依套件的方式做同樣的事。
用 prompt 來減少修復量
限制輸出:「只回覆一個 JSON 物件,不要其他文字、不要 markdown 圍籬、不要解說」。如果模型支援,啟用 JSON 模式或 response_format json_object —— 這從根本消除圍籬與散文。在 prompt 中放入 schema(或透過 function calling)還能進一步減少多餘的鍵。
從 LLM 串流取得 JSON
在 token 還在串流時,JSON 依定義是不完整的 —— 還沒有閉合括號。要嘛先暫存到回應結束再一次 parse,要嘛使用能容忍串流的解析器(jsonrepair、partial-json),它們會回傳目前最合法的前綴,讓你可以邊收邊渲染。
什麼時候該失敗而不是修復
如果 JSON 會引發金流、權限變更或破壞性動作,不要默默修復 —— 拒絕回應並重試,或把原始輸出丟出來人工檢視。修復適用於顯示、除錯與復原;絕不能用在無人複核就會改變系統狀態的輸入。
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 中未加引號的鍵
- 修復 JSON 解析錯誤:Expected Property Name
- JSON 與 JavaScript 物件字面值的差異
- 在發送 API 請求前驗證 JSON
- JSON 格式化器 vs JSON 修復工具
- 修復 JSON Unexpected Token 錯誤
- JSON 轉 JavaScript 物件轉換工具