LLM が出力した JSON を修復する
AI の応答は一見 JSON のようでも、Markdown フェンス、コメント、Python 風リテラル、JavaScript オブジェクト構文を含む ことがよくあります。
LLM の JSON でよくある問題
Markdown のコードフェンス、コメント、シングルクォート、無引用キー、末尾カンマ、Python の True/False/None など、いずれもせっかく有用な AI 応答を、厳格な JSON パースで失敗させ得る原因です。
修復のフロー
応答を JSON Fix に貼り、Repair & Format を実行し、その後 Validate でストリクトな JSON であることを確認してから、コードや API リクエストで使ってください。
プライバシーに関するメモ
修復はブラウザ内で完結します。社内例や非公開 API ペイロードを含むプロンプトをデバッグするときも安心して使えます。
ツールとレシピ
ブラウザでのクリーンアップなら、LLM の出力を JSON Fix に貼り Repair & Format をクリックします —— markdown のコードフェンス(```json ... ```)、末尾カンマ、Python リテラル(True/False/None)が 1 パスで除去されます。Node では npm パッケージの jsonrepair が依存なしで同じことをします。
修復量を減らすためのプロンプト
出力を制約してください:「JSON オブジェクトを 1 つだけ返し、それ以外は不要。markdown フェンス不要、コメント不要」。モデルが対応していれば JSON モードや response_format json_object を使い、フェンスや散文を構造的に排除します。プロンプト内のスキーマ(または function calling)はさらに余計なキーを抑えます。
LLM からの JSON ストリーミング
トークンが流れている間、JSON は定義上不完全です —— 閉じカッコがまだないからです。応答完了 までバッファして一度パースするか、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 ペイロード)
- URL エンコーディング:クエリパラメータとパスをパーセントエンコードする
- YAML を JSON に変換(インデントエラーを避ける)
- JSON を CSV に変換:オブジェクト配列をフラット化
- JSON を XML に変換:ルート要素・属性・配列
- JSON を文字列リテラルとしてエスケープ(二重エンコードされた JSON のデコード)
- JSON の末尾カンマを修正
- JSON のシングルクォートを修正
- JSON の引用符なしキーを修正
- JSON 解析エラー「Expected Property Name」を修正
- JSON と JavaScript オブジェクトリテラルの違い
- API リクエスト前に JSON を検証する
- JSON フォーマッタ vs JSON Repair
- JSON の Unexpected Token エラーを修正
- JSON から JavaScript オブジェクトへの変換ツール