LLM JSON 出力チェッカー

JSON Schema と LLM の応答を貼り付けると、すべての検証エラーを JSON パスと行番号つきで表示します。コードフェンス、末尾カンマ、シングルクォートや装飾引用符、コメント、Python の True/None は先に修正します。検証はブラウザ内の Ajv 8.20.0(draft-07、2019-09、2020-12)で行います。

    すべてブラウザ内で処理します。保存も送信もしません。

    問題は解決しましたか?
    Googleで優先表示

    使い方

    1. 左に JSON Schema を貼り付けます。name と schema で包んだ OpenAI の response_format オブジェクトは自動で中身を取り出します。
    2. 右にモデルの出力を受け取ったまま貼り付けます。コードフェンスや前後の説明文が付いていても構いません。
    3. 結果を確認します。各エラーに行と列(クリックでその位置へ移動)、JSON パス、内容が出ます。先に整形が必要だった場合は修正点が表示され、整えた JSON をコピーできます。

    計算方法

    まず出力をそのまま解析します。失敗したら、モデルがよく出す問題を取り除いて再試行します:Markdown のコードフェンス、JSON の前後の文、BOM、全角風の引用符(“ ” ‘ ’)、シングルクォート文字列、// と /* */ のコメント、末尾カンマ、Python の True・False・None。文字列の中身は変えません。

    スキーマの検証には広く使われる JSON Schema バリデータ Ajv 8.20.0 を使い、何か貼り付けたときだけ読み込みます。$schema フィールドが 2020-12 や 2019-09 を示していればその草案を、それ以外は draft-07 を使います。最初の 1 件だけでなくすべてのエラーを報告します。

    format キーワード(email、date-time など)は検証せず、リモートの $ref は取得しません。

    貼り付けた内容は保存せず、どこにも送らず、ページのアドレスにも残しません。

    LLM がよく間違えること

    問題例自動修正
    コードフェンス```json { ... } ```あり
    JSON の前後の文Sure! Here it is: { ... }あり
    末尾カンマ{"a": 1,}あり
    シングルクォート・装飾引用符{'a': 'b'}あり
    必須フィールドの欠落{"title": "x"}なし、報告
    型の誤り"rating": "5"なし、報告
    余分なフィールドadditionalProperties false で "author": "x"なし、報告

    最初から正しい出力を得るには

    • 可能なら提供元の構造化出力モードを使いましょう。OpenAI の strict json_schema や Anthropic の structured outputs は出力をスキーマに縛ります。
    • strict モードではすべてのプロパティを required に入れ、additionalProperties を false にする必要があります。スキーマがこの規則に沿っているか確認してください。
    • strict モードなしで出力を解析するなら、ここのような整形の段階を置き、データを信用する前に検証しましょう。

    よくある質問

    問題なさそうな JSON が解析できないのはなぜ?

    よくある原因は最後の要素の後のカンマ、JSON を囲むコードフェンス、チャット画面から入った装飾引用符です。このツールが修正し、何を変えたかを示します。

    どの JSON Schema 草案に対応していますか?

    既定は draft-07 で、$schema フィールドに書かれていれば 2019-09 と 2020-12 も使います。

    データはアップロードされますか?

    いいえ。解析と検証はブラウザ内で行い、テキストは保存も URL への反映もしません。

    OpenAI の response_format オブジェクトをそのまま貼れますか?

    はい。name と schema を持つオブジェクト、または json_schema.schema を持つオブジェクトは中身のスキーマを取り出して使います。