AIの出力をアプリや表計算に取り込むための「出力の設計図」をフォームで作成します。 JSONスキーマ・出力例・プロンプトを同時に生成し、サンプルJSONからの逆生成やAI出力の検証にも対応しています。
このツールはブラウザの中だけで動いています。入力した内容が、外部に送信されることはありません。入力内容は外部に送信されません。
詳しくテンプレートから始める
出力設定
出力先の形式
$schema付きの汎用的なJSON Schemaです。検証ライブラリやAPI仕様書など幅広い用途で使えます。
項目数
ネスト深さ
スキーマ概算
生成結果
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "商品名"
},
"price": {
"type": "integer",
"description": "税込価格(円)"
},
"currency": {
"type": "string",
"description": "通貨コード",
"enum": [
"JPY",
"USD"
]
},
"inStock": {
"type": "boolean",
"description": "在庫があるかどうか"
},
"tags": {
"type": "array",
"description": "商品の特徴を表すタグ",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"price",
"currency",
"inStock"
],
"additionalProperties": false
}AIの出力をスキーマで検証
AIが返したJSONを貼り付けると、現在のスキーマに合っているか確認できます(```json の囲みは自動で外します)。
AIにJSONで答えさせるなら、先に「出力の設計図」を作る:JSONスキーマ作成ツール
AIにJSON形式で回答させるとき、項目名が毎回違う、数値が文字列で返ってくる、余計な項目が混ざるといった「形の崩れ」が起こると、アプリや表計算への取り込みが途端に難しくなります。これを防ぐ基本の考え方が、出力の形を先にJSONスキーマとして定義しておくことです。
本ツールは、項目名・型・必須かどうか・選択肢をフォームに入力するだけで、JSONスキーマと、プロンプトにそのまま貼れる出力例・指示文を同時に生成します。JSON Schemaの書式を覚えていなくても、入れ子のオブジェクトや配列を含む複雑な構造を作成できます。
すでに理想のJSONがある場合は、サンプルJSONからスキーマを逆生成して、フォームで微調整できます。OpenAIのStructured Outputs(strict)やClaudeのtool useといった出力先ごとの形式への対応、TypeScript型・Zodスキーマの同時出力、AIが返したJSONがスキーマに合っているかの検証まで、ひとつの画面で完結します。
こんなシーンで便利です
AIの回答をアプリやスプレッドシートに取り込みたい時
問い合わせの分類結果や商品情報の抽出結果など、AIの出力を表やデータベースに入れる場合に。項目名と型を固定したスキーマを渡しておくことで、取り込み時のエラーを減らせます。
OpenAI・ClaudeのAPIで構造化出力を使いたい時
response_format や tool use に渡すスキーマを手書きするのは手間がかかります。出力先を選ぶだけで、必須項目やnull許容などの形式に合わせたスキーマ・API用の定義を作成できます。
既存のJSONデータからスキーマを起こしたい時
API仕様書がない、あるいは手元のサンプルしかない場合に。JSONを貼り付けるだけで項目と型を読み取り、フォームに反映して編集できます。配列内で一部にしかない項目は自動で任意扱いになります。
AIの出力がスキーマに沿っているか確認したい時
プロンプトだけで出力形式を指示している場合、形が崩れることがあります。AIが返したJSONを貼り付けるだけで、型の不一致・必須項目の欠落・未定義項目の混入を、場所つきで確認できます。
使い方は簡単 4ステップ
- 「テンプレートから始める」で近い用途を選ぶか、「項目を追加」で項目名・型・説明を入力します。すでにJSONがある場合は「サンプルJSONから逆生成」を使います。
- 必要に応じて「必須」「null を許可」や選択肢(enum)・形式(日付・メール等)を設定し、「出力先の形式」(標準・OpenAI strict・Claude tool use)を選びます。
- 「生成結果」のタブから、JSON Schema・出力例・プロンプト・TypeScript型・Zodスキーマを選んでコピーまたは保存します。
- AIの出力を確認したい場合は「AIの出力をスキーマで検証」にJSONを貼り付け、不一致がないかチェックします。
※設定を変更するたびに結果は自動で更新されます。生成ボタンを押す必要はありません。
ご利用時の注意点
- 本ツールが対応しているのは、型・必須・null許容・選択肢(enum)・形式(format)・配列・入れ子のオブジェクト・説明文です。最小値・最大値、文字数制限、正規表現、oneOf・$refなどの高度なキーワードは生成されないため、必要に応じて出力に直接追記してください。
- OpenAI Structured Outputs・Claude tool useなどのAPI側の仕様や上限は更新されることがあります。実際に利用する際は、各社の最新の公式ドキュメントで対応状況をご確認ください。
- サンプルJSONからの逆生成は、与えられた値からの推測です。選択肢(enum)や必須・任意の最終的な判断はサンプルだけでは決まらないため、生成後にフォームで必ず見直してください。
- 「項目の説明(description)」はAIが何を入れるべきか判断する重要な手がかりです。空欄でも動作しますが、記入すると出力の精度が安定しやすくなります。
- 完全無料・安全:項目名やサンプルJSONの内容は一切送信されない、通信が発生しないブラウザ完結型を採用しています。
JSON Schemaの主なキーワード早見表:本ツールの設定項目との対応
JSON Schemaでよく使うキーワードと、本ツールのどの設定で生成されるかをまとめた早見表です。出力されたスキーマを読む際の参考にしてください。
| キーワード | 役割 | 本ツールでの設定 | 出力の例 |
|---|---|---|---|
| type | 値の型を指定する | 「型」の選択 | "type": "string" |
| properties | オブジェクトの各項目を定義する | 項目名と型の入力行 | "properties": { "title": { ... } } |
| required | 必ず含める項目の一覧 | 「必須」ボタン | "required": ["title"] |
| enum | 取りうる値を限定する | 「選択肢」欄 | "enum": ["低", "中", "高"] |
| items | 配列の要素の型を定義する | 「要素の型」の選択 | "items": { "type": "string" } |
| format | 文字列の形式を指定する | 「形式」の選択 | "format": "date" |
| description | 項目の意味を説明する | 「説明」欄 | "description": "商品名" |
| null許容 | 値が null でもよいことを示す | 「null を許可」ボタン | "type": ["string", "null"] |
| additionalProperties | 定義にない項目を許可するか | 「未定義の項目を禁止」 | "additionalProperties": false |
【出力先の形式による違い】
同じ項目定義でも、出力先によってスキーマの形が変わります。
- 標準 JSON Schema: $schema付きの汎用形式。検証ライブラリやAPI仕様書など幅広い用途に使えます。
- OpenAI strict: 全項目を required にし、任意項目は null 許容へ自動変換。additionalProperties: false を付与します。
- Claude tool use: ツール定義(name・description・input_schema)の形式でも出力できます。
※各APIの仕様・対応キーワード・上限は更新されることがあります。本番利用の前に、公式ドキュメントで最新の要件をご確認ください。
AIの出力をJSONで安定させる:スキーマ設計の基本と使い分け
構造化出力を実務で使うときに押さえておきたい、スキーマ設計の考え方と、出力先ごとの違いを解説します。
結論:「スキーマ・出力例・指示文」の3点セットで渡すと出力が安定する
AIにJSONで答えさせる際は、スキーマ(形の定義)だけでなく、出力例(実際の値の見本)と指示文(守るべきルール)をセットで渡すと、形の崩れが起こりにくくなります。
スキーマは構造を機械的に定義でき、出力例は値の書き方(日付の形式や選択肢の表記)を直感的に伝えられ、指示文は「不明な項目はnullにする」「前置きは付けない」といった振る舞いを制御します。
本ツールは、この3つを同じ項目定義から同時に生成するため、内容のずれが起きません。
標準のJSON SchemaとOpenAI strictで「任意項目」の扱いが違う理由
標準のJSON Schemaでは、required に入れない項目が「任意項目」になります。一方、OpenAIのStructured Outputs(strict)では、すべてのプロパティを required に含める必要があり、任意項目はnull との組み合わせで表現します。
そのため、標準向けに書いたスキーマをそのままstrictに渡すと受け付けられないことがあります。本ツールは出力先を切り替えるだけでこの変換を自動で行うため、「必須」の設定を変えずに両方の形式を作成できます。
選択肢(enum)と説明文(description)がAIの精度を左右する
AIが自由に文字列を書ける項目は、「問い合わせ」「お問合せ」「問合せ」のような表記ゆれを起こしやすく、後の集計や分岐処理で困ります。分類やステータスのような項目は、選択肢(enum)で取りうる値を固定するのが基本です。
また、項目名だけでは意図が伝わらない場合は、説明文(description)に「税込価格(円)」「不明な場合はnull」のように判断基準を書いておくと、出力の精度が安定します。
サンプルJSONからの逆生成で気をつけたい「推測」の限界
逆生成は、サンプルに現れた値から型を推測する仕組みです。そのため、サンプルに現れなかった可能性(別の型の値・存在しない項目・取りうる選択肢)は反映されません。たとえば1件しかないサンプルでは、すべての項目が必須として扱われます。
配列内の複数の要素を貼り付けると、一部にしか現れない項目を自動で任意扱いにできます。反映後は、フォームで必須・任意・選択肢・説明を見直す前提で使うのがおすすめです。
よくある失敗と対策
OpenAI strictで任意項目を required から外してエラーになる
標準的なJSON Schemaの感覚で、任意項目を required に含めずに渡してしまい、strictモードのスキーマとして受け付けられない失敗です。
💡 対策・解決策を見る▼
additionalProperties を指定せず、余計な項目が出力に混ざる
スキーマに定義していない項目をAIが勝手に追加し、後続のアプリや表計算の取り込み処理が想定外の項目で失敗する、あるいは列がずれる失敗です。
💡 対策・解決策を見る▼
分類項目を自由記述にして、表記ゆれで集計できなくなる
「カテゴリ」「緊急度」などを文字列のまま自由に書かせてしまい、「高」「高い」「緊急」のように同じ意味の別表記が混在して、集計や条件分岐が正しく動かなくなる失敗です。
💡 対策・解決策を見る▼
金額や件数を文字列型にして、表計算で計算できなくなる
数値として扱いたい項目の型を文字列のままにしてしまい、AIが「1,200円」のような単位や区切り記号つきの文字列を返して、そのままでは集計や並べ替えができなくなる失敗です。
💡 対策・解決策を見る▼
日付の形式をそろえず、AIが独自の書式で返してくる
日付の項目を単なる文字列にしたため、「2025年1月15日」「1/15」「2025-01-15」など、返ってくる書式がバラバラになり、取り込み時に日付として解釈できなくなる失敗です。
💡 対策・解決策を見る▼
よくある質問(FAQ)
Q.JSONスキーマとは何ですか。AIの出力でなぜ必要になるのですか
A. JSONスキーマは、JSONデータの形(どんな項目があり、それぞれがどんな型で、どれが必須か)を記述するための標準的な書式です。AIにJSONで回答させる場面では、項目名の揺れや型の食い違い、余計な項目の混入が起こりやすく、そのままではアプリや表計算に取り込めないことがあります。出力の形をスキーマとして先に決めておくと、AIへの指示が明確になり、返ってきたデータの検証も機械的に行えるようになります。
Q.「フォームで作る」と「サンプルJSONから逆生成」はどちらを使えばよいですか
A. ゼロから出力形式を設計する場合はフォーム入力が向いています。すでに手元に理想の出力例や、既存システムのJSONがある場合は、サンプルJSONを貼って逆生成すると、項目と型を自動で読み取ってフォームに反映できます。逆生成した内容はそのままフォームで編集できるため、選択肢(enum)や項目の説明など、サンプルから読み取れない部分を後から補う使い方がおすすめです。
Q.OpenAI Structured Outputs(strict)用のスキーマは、通常のJSON Schemaと何が違いますか
A. strictモードでは、すべてのプロパティを required に含めること、各オブジェクトに additionalProperties: false を指定することなどの制約があります。そのため通常のスキーマと同じ書き方では受け付けられない場合があります。本ツールで「OpenAI strict」を選ぶと、全項目を required にし、任意項目を null との組み合わせ(例:type: ["string", "null"])へ自動変換し、additionalProperties: false を付与します。対応している機能や上限はAPIの更新で変わることがあるため、最新の仕様は公式ドキュメントでご確認ください。
Q.strictモードで「任意項目」はどう表現すればよいですか
A. strictモードでは任意項目(required に入れない項目)を使えないため、「値がない場合は null を返す」形で表現するのが一般的です。本ツールでは、OpenAI strictを選ぶと、「必須」をオフにした項目が自動的に null 許容になり、required には含まれる形で出力されます。AIへの指示(プロンプト)にも「不明な項目は null にする」というルールが自動で入ります。
Q.Claudeで使う場合はどうすればよいですか
A. Claudeのtool useでは、ツール定義の input_schema にJSON Schemaを渡す形式を使います。本ツールで「Claude tool use」を選ぶと、name・description・input_schema を含むツール定義の形式でも出力できます。そのままAPIリクエストのtoolsに貼り付けて利用できます。なお、利用できる機能や形式は更新される場合があるため、最新の情報は公式ドキュメントでご確認ください。
Q.スキーマを作れば、AIの出力形式は必ず守られますか
A. いいえ、利用方法によって異なります。APIの構造化出力機能(response_format や tool use など)にスキーマを渡す場合は、形式に沿った出力を強く誘導・制約できます。一方、スキーマをプロンプト文に貼り付けるだけの使い方では、形式が崩れる可能性があります。本ツールには、AIが返したJSONを貼り付けてスキーマに適合しているかを確認する検証機能があるため、プロンプト方式で運用する場合は、返ってきた出力のチェックにご活用ください。
Q.TypeScriptの型定義やZodスキーマも同時に出力されるのはなぜですか
A. AIの出力をアプリで受け取る開発では、JSONスキーマ・TypeScriptの型・Zodなどの実行時バリデーションを、それぞれ別々に手書きして二重管理になりがちです。本ツールでは、同じ項目定義からJSON Schema、TypeScriptの型、Zodスキーマを同時に生成するため、定義のずれを防げます。Zodの出力は一般的なv3系の書き方を想定しているため、お使いのバージョンに合わせて微調整してください。
Q.入力した項目名やサンプルJSONの内容が外部に送信される心配はありませんか
A. 一切ありません。当ツールはスキーマの生成・逆生成・検証のすべての処理をユーザーのブラウザ内だけで実行する完全ローカル処理型の安全設計です。入力データが外部サーバーへ送信されたりデータベースに保存されたりすることはなく、ページを閉じればデータは即座にメモリ上から完全消去されます。社外秘のデータ構造や実データを含むサンプルJSONでも安心してご利用いただけます。
Q.最小値・最大値、文字数制限、正規表現、oneOfなどには対応していますか
A. 現在のバージョンでは、型(文字列・数値・整数・真偽値・オブジェクト・配列)、必須、null許容、選択肢(enum)、形式(date・date-time・email・uri・uuid)、要素の型、入れ子構造、説明文に対応しています。minimum・maximum・minLength・pattern・oneOf・$ref などの高度なキーワードは生成されないため、必要な場合は出力されたスキーマに直接追記してください。
あなたの声で、
このツールをより鋭く。
「こんな機能が欲しい」「ここを直してほしい」といったご意見や、新しいツールのリクエストを募集しています。エンジニアが直接目を通し、開発の参考にさせていただきます。