LLM の JSON 出力を修復:AI からの「ほぼ JSON」を扱う

LLM は ```json フェンスで囲まれた JSON を、単一引用符、Python リテラル、引用符なしのキーとともに返すことがよくあります。構文を修復し、厳格に検証し、クリーンアップした出力から TypeScript の型を導きます。

ここに来たら

LLM が JSON.parse に拒否される JSON を返しました。最も多い原因は、ドキュメント全体を囲む markdown コードフェンス、単一引用符、引用符なしのキー、True/None のような Python リテラル、そして文字列化されたオブジェクトです。構文を修復し、結果をアプリに渡す前に厳格に検証しましょう。

LLM 出力のための修復ワークフロー

まず修復を実行します —— フェンス、単一引用符、引用符なしのキー、Python リテラル、末尾カンマを許容します。次に検証して、クリーンアップしたテキストが往復することを確認します。クリーンアップしたツリーを使って型を導いたり、アプリに渡したりします。

パースできたら、型を導く

LLM の出力が検証を通過したら、TypeScript インターフェースや JSON Schema を導き、次の呼び出しが検証できる契約を持つようにします。これが一度だけ修復することと、永遠に修復し続けることの違いです。

標準で近づいているもの

LLM の JSON ワークフローにとって、2 つの来たる JavaScript 提案が重要です:JSON.parse ソースアクセス(エラーを元のテキストと値とともに読む)と JSON.parseImmutable です。これらは、あらゆるアプリに存在する独自の修復コードの量を減らします。

推奨ルート

LLM 出力を貼り付け、クリーンアップし、型を付ける。

    1. ツール:/ —— AI 出力を貼り付け、「修復して整形」をクリック。
    1. ガイド:/guides/repair-llm-json-output —— フェンス、引用符、Python リテラルを処理。
    1. ブログ:/blog/repair-broken-json-in-javascript —— 同じワークフローをコードで。
    1. リファレンス:/news/json-parse-source-access-baseline-2025 —— 近づいている標準サポート。