JSON Schema Generator
JSONデータのサンプルからJSON Schema(Draft-07)を自動生成する無料オンラインツール。ネスト・配列・必須項目を自動判定、APIリクエスト/レスポンスのバリデーション定義・OpenAPI仕様書のたたき台・フォーム自動生成の下準備に。手書きの数十行を数秒に、ブラウザ完結で外部送信なし。
JSONのサンプルデータを貼るだけで、そのデータ構造に対応するJSON Schema定義を自動生成するツールです。手書きすると煩雑な型定義を一瞬で作れます。
JSONを入力してください...
// JSON Schema Generatorの機能と特徴
JSON Schemaとは
JSON Schemaは「このJSONはこういう形をしていないといけない」というルールを定義するための仕様です。APIのリクエスト/レスポンスが正しい形式か検証したり、フォーム画面を自動生成したり、ドキュメントとして活用したりできます。多くのAPIツール(Postman、OpenAPI、AJV等)で標準サポートされており、実務でも広く使われています。
手書きせずサンプルから生成する
JSON Schemaを手書きすると、ネストされたオブジェクトごとに `properties` を書き、型を指定し、`required` を並べる必要があります。100項目あるオブジェクトなら数百行のスキーマになることもザラ。本ツールならJSONのサンプルを1つ貼るだけで、対応するスキーマを一気に生成できます。あとは必要に応じて手を加えるだけです。
型の自動判定(string・integer・boolean・array)
文字列は "string"、数値は "integer"(整数)または "number"(小数含む)、真偽値は "boolean"、null は "null"、配列は "array"、オブジェクトは "object" に自動判定されます。ネストされた構造も再帰的に解析するので、複雑なAPIレスポンスでもワンクリックでスキーマ化できます。
OpenAPI(Swagger)にそのまま転記できる
OpenAPI(Swagger)の仕様書を書くときも、components/schemas 部分は JSON Schema と同じ書き方です。実際のAPIレスポンスを本ツールに貼ってスキーマを作れば、そのままOpenAPIに転記できるので、仕様書作成の効率が大きく上がります。JSONの型からTypeScriptを作りたい場合は JSON→TypeScript型生成 をご利用ください。
// JSON Schema Generatorに関するよくある質問
JSON Schemaって何ですか?
- JSONデータが「どんな形をしていないといけないか」というルールを定義するための仕様です。例えば「name は文字列で必須、age は0以上の整数」といったルールを機械が読める形で書けます。APIのバリデーション、フォーム自動生成、ドキュメント化、テストデータ生成など、多岐にわたる用途で使われています。
なぜスキーマを自動生成するツールが必要?
- スキーマを手書きするのは非常に面倒だからです。10項目のオブジェクトでも数十行、ネストされたAPIレスポンスなら数百行のスキーマになります。実際のJSONサンプルからスキーマを自動生成すれば、まず動くたたき台を得て、そこから微調整するのが最も効率的です。本ツールで数秒でできる作業が、手書きだと数十分かかります。
生成されたスキーマはそのまま使えますか?
- 基本的な形は正しく生成されるので、そのままバリデーションに使えます。ただし「min/max(最小/最大値)」「pattern(正規表現)」「format(日付・メール等)」といった細かい制約は元のJSONから推測できないため、必要に応じて手動で追加してください。生成されたスキーマは Ajv・OpenAPI・Postman・多くのライブラリで使えます。
どのバージョン(Draft)に対応していますか?
- Draft-07 形式で出力します。現時点で最も広く使われているバージョンで、多くのバリデーションライブラリが標準対応しています。OpenAPI 3.0・3.1 とも高い互換性があり、実務で困ることはほぼありません。
配列の中身はどう判定されますか?
- 配列の全要素を見て、共通する型を推論して items として定義します。例えば `["a", "b", "c"]` なら `{"type": "array", "items": {"type": "string"}}` に、`[1, "a"]` のように型が混在する場合は oneOf でユニオン型として表現します。実データに基づく判定なので、実際のAPIレスポンスから正確なスキーマが作れます。
ネストされたオブジェクトも扱えますか?
- はい、深くネストされたオブジェクトも再帰的に解析され、階層構造をそのまま保持したスキーマが生成されます。「レスポンスの中に配列があって、その中にまたオブジェクトがある」といった複雑な構造でも問題ありません。
必須項目(required)はどう決められますか?
- オブジェクト直下の全プロパティはデフォルトで required(必須)として生成されます。ただし配列内のオブジェクトについては、「全要素に共通するプロパティのみが必須、一部にしかないプロパティは任意」として扱われます。実データから「必ずある/たまにない」を判定できるので、より現実的なスキーマになります。
生成されたスキーマを見やすくしたい
- 「タイトル」欄でスキーマのタイトルを、「インデント」欄で整形の見やすさを設定できます。生成後のスキーマは JSON整形ツール でさらに整形することもできますし、JSON→TypeScript型生成 で TypeScript の型定義に変換することもできます。
OpenAPI(Swagger)に貼り付けられますか?
- はい、OpenAPI 3.x の components/schemas 部分は JSON Schema と同じ書き方なので、生成されたスキーマをそのまま貼り付けられます。仕様書の型定義を書く手間が大幅に減らせるので、API開発の初期フェーズで特に活躍します。
サンプルのJSONはサーバーに送信されますか?
- いいえ、すべての処理はブラウザ内のJavaScriptで完結します。入力したJSONもスキーマもサーバーに送信されません。社内API・未公開エンドポイントのレスポンスサンプル・個人情報を含むJSONも安心してスキーマ化できます。
// JSON Schema Generatorの使い方
-
もとになるJSONを貼り付け
左側の入力欄にJSONデータを貼り付けます。実際のAPIレスポンス・設定ファイル・データベース出力など、リアルなデータを使うほど実用的なスキーマになります。
-
タイトルとインデントを指定
「タイトル」欄でスキーマの名前を、「インデント」で整形幅を選びます。デフォルトのままでも問題なく使えます。
-
生成されたスキーマをコピー
右側にJSON Schema がリアルタイムで表示されます。COPYボタンでクリップボードに保存し、Ajv・OpenAPI仕様書・Postmanなど、スキーマを使う各種ツールに貼り付けて活用してください。
カテゴリ データ形式