本文へ移動
AIプラスチャンネル生成AIの使い方・資料選び・回答の確かめ方。

AIの回答をJSONにそろえるには?『JSONで返して』とスキーマ指定の違い

情報確認日:2026年10月14日

AIへ「JSONで返して」と頼むことと、APIでJSON Schemaを指定して出力を制約することは違います。会話ではキー・型・不明時の扱いを具体的に示し、出力を検証してください。対応APIのStructured Outputsは形をそろえられますが、値や引用した事実まで正しいと保証する機能ではありません。

JSONは、決まった文法で書くデータ

JSONは、名前と値、配列などを一定の文法で表す形式です。表を人が読むための整形と、プログラムが読み込むための形式を区別します。

見た目が似ていても、キーや文字列を単一引用符で囲んだり、最後の項目の後に余計なカンマを置いたりすると、JSONとして読めません。MDNのJSON.parse説明も、これらの文法違反はエラーになると示しています。

会話の出力には、前後の説明やMarkdownのコード枠が付く場合があります。データとして読み込む部分と、説明の部分を分けて扱ってください。

会話で頼むなら、名前・型・不明を指定

単にJSON形式と言うより、必要なキーと、それぞれの値の型を示します。金額を数値にするのか、通貨記号を含む文字列にするのかも決めます。

編集部による例では、文書から件名、日付、金額を取り出す場合に、次のように指定します。

資料の内容をJSON一つで返してください。説明文は付けないでください。
キーはtitle、date、amount_yenに固定してください。
titleは文字列、dateは確認できる日付、amount_yenは円単位の数値です。
資料にないdateとamount_yenはnullにし、推測で埋めないでください。

出力の形の例は次のとおりです。これは架空の書式例で、実際の資料から抽出した結果ではありません。

{
  "title": "会議資料",
  "date": null,
  "amount_yen": 12000
}

日付や通貨の条件を使うなら、その表記規則も決めます。空文字とnullと0を、全部「情報なし」として混ぜないことが大切です。

JSON modeとスキーマ指定は別

OpenAIのStructured Outputs公式説明は、JSON modeがJSONの文法をそろえるのに対し、Structured Outputsは指定したスキーマへの適合を扱うと区別しています。

スキーマは、キー、型、必須項目などの設計図です。たとえば金額を数値に固定したり、必要なキーが欠けない形にしたりします。利用できるモデルや、対応するスキーマの範囲に条件があるため、現在のAPI仕様で確認します。

方法 主に決められること 別に確認すること
会話の文章で依頼 希望する形式・キー 文法、キー、型、内容
APIのJSON mode JSONとしての形式 スキーマと内容
APIのStructured Outputs 対応するスキーマの形 内容と業務条件、異常時

普段のChatGPTの会話へ「strict:true」と書くだけで、APIの制約機能を有効にしたことにはなりません。APIを使うシステムなら、開発側で対応する設定を行います。

検証は、三段階に分ける

最初は文法です。JSONとして読み込めるかを確かめます。次に構造として、必要なキー、型、nullの扱い、余分な項目を確認します。

最後に内容を元資料と照合します。数値型の12000が正しい金額か、日付が別の欄から取られていないかは、構造だけでは分かりません。OpenAIの公式説明も、Structured Outputsに間違いが残り得るとしています。

業務の条件も別です。終了日が開始日より前、数量が対象外、合計が一致しないなど、形式を満たしても仕事に使えないデータがあり得ます。元資料と、使う処理の条件に合わせて確認します。

拒否や未完了を、通常データに混ぜない

APIの回答が拒否された場合は、指定したスキーマに沿った通常の結果ではない場合があります。最大出力量などで回答が途中で切れる場合もあります。公式ガイドは、拒否や未完了を検出して扱う必要を示しています。

空の結果を勝手に正常な0件として扱うと、処理失敗を見落とします。正常完了、確認が必要、不正な形式、拒否、未完了などを、プログラム側で分けます。

再試行するときは、元の回答、対象資料、エラーを記録します。毎回違う資料や規則でやり直すと、同じ条件で改善したか判断できなくなるからです。

システムへ組み込む前の小さな確認

正解が分かる資料、情報が欠けた資料、表記が違う資料を用意し、同じ条件で出力を比較します。編集部の例なら、金額がある・ない、日付が一つ・複数というケースを含めます。

OpenAIの評価ガイドも、代表的な場合だけでなく例外を含むデータと評価条件の設定を案内しています。本記事はAPIの有料実行や特定モデルの性能を実測していません。

JSONの形をそろえると、後の処理が楽になります。ただし、形が揃ったことを正確さの検証に置き換えず、文法、構造、内容の順に確認してください。

参照資料

あわせて読みたい記事

執筆・検証:カネさん(政経プラスチャンネル運営)+ ChatGPT

ほかの記事を探す
ホームで目的から探す →
タイトルとURLをコピーしました