JSON スキーマジェネレーター
任意のサンプル JSON から JSON Schema(Draft-07)を自動生成します。JSON を貼り付けるだけで即座に有効なスキーマを取得 — 登録不要。
インデント:
入力 JSON
生成されたスキーマ
JSON Schema がここに表示されます
関連ツール
JSON スキーマジェネレーターについて
仕組み
- 左パネルに有効な JSON を貼り付けるか入力します
- ツールは各キーと値を再帰的に分析します
- 型が自動推定されます:string、number、integer、boolean、object、array、null
- すべての存在するキーが "required" 配列にリストされます
- 結果の Draft-07 スキーマが右側に表示されます
一般的なユースケース
- API ドキュメントと OpenAPI スキーマのブートストラップ
- バックエンドサービスでの JSON ペイロードの検証
- json-schema-to-typescript などのツールで TypeScript 型を生成
- マイクロサービス間の厳格なデータ契約の作成
- 設定ファイル形式の文書化
よくある質問
JSON Schema とは何ですか?
JSON Schema は JSON ドキュメントに注釈を付けて検証するための語彙です。JSON データの構造、型、制約を記述し、入力検証、ドキュメント生成、サービス間のデータ契約共有を容易にします。
このツールはどの JSON Schema ドラフトを生成しますか?
このツールは最も広くサポートされているバージョン、JSON Schema Draft-07 を生成します。Draft-07 は VS Code、Postman、OpenAPI 3.x を含むほとんどのバリデーター、エディター、API ツールと互換性があります。
スキーマ推定はどのように機能しますか?
ツールは JSON の各値を再帰的に検査します。各キーに対して JSON 型(string、number、integer、boolean、array、object、null)を決定し、オブジェクト内のすべてのユニークなキーを収集して required としてマークします。データはサーバーに送信されません。
すべてのキーが required としてマークされますか?
デフォルトでは、サンプル JSON に存在するすべてのキーが "required" 配列に追加されます。実際のデータにオプションフィールドがある場合は、使用前に生成されたスキーマの required 配列からそれらのキーを削除してください。
null 値はどう処理されますか?
サンプル JSON の値が null の場合、ツールは型 "null" を生成します。フィールドが他の型も保持できる場合は、スキーマ生成後に型を手動で ["string", "null"] などの配列に変更してください。
ルートレベルの JSON 配列からスキーマを生成できますか?
はい。JSON がトップレベルの配列の場合、生成されたスキーマは型 "array" を持ち、最初の要素から推定された "items" サブスキーマが含まれます。
JSON データはサーバーに送信されますか?
いいえ。すべての処理はクライアントサイド JavaScript を使用してブラウザ内で完全に行われます。JSON は当社のサーバーに送信されることはなく、機密データはプライベートに保たれます。
生成されたスキーマを OpenAPI / Swagger 仕様で使用できますか?
はい。OpenAPI 3.x は JSON Schema Draft-07 のスーパーセットを使用しているため、このツールの出力を OpenAPI コンポーネントの "schema" セクションに直接貼り付けることができます。
JSON に深くネストされたオブジェクトがある場合はどうなりますか?
ツールは任意にネストされた JSON 構造を完全にサポートします。各ネストされたオブジェクトは、正しい型注釈を持つ独自の "properties" ブロックを取得します。
JSON Schema における "number" と "integer" の違いは何ですか?
JSON Schema は "integer"(1、42、-7 などの整数)と "number"(3.14 などの小数を含む任意の数値)を区別します。このツールは値に小数部分がない場合は自動的に "integer" を使用します。
生成後にスキーマをカスタマイズできますか?
もちろんです。出力は編集可能なテキストです。一般的なカスタマイズには、"description" フィールドの追加、"minLength"/"maxLength" や "pattern" による文字列制約の強化、"enum" 配列の追加、"required" リストの調整が含まれます。
"additionalProperties: false" オプションは何をしますか?
有効にすると、スキーマのすべてのオブジェクトに "additionalProperties: false" が追加されます。これにより、バリデーターは "properties" に明示的にリストされていないキーを拒否します。厳格な API 契約に役立ちます。