メインコンテンツへスキップ

JSON Schema Generator

JSONデータのサンプルからJSON Schema(Draft-07)を自動生成する無料オンラインツール。ネスト・配列・必須項目を自動判定、APIリクエスト/レスポンスのバリデーション定義・OpenAPI仕様書のたたき台・フォーム自動生成の下準備に。手書きの数十行を数秒に、ブラウザ完結で外部送信なし。

JSONのサンプルデータを貼るだけで、そのデータ構造に対応するJSON Schema定義を自動生成するツールです。手書きすると煩雑な型定義を一瞬で作れます。

JSON Schema Generator
タイトル
インデント
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の使い方

  1. もとになるJSONを貼り付け

    左側の入力欄にJSONデータを貼り付けます。実際のAPIレスポンス・設定ファイル・データベース出力など、リアルなデータを使うほど実用的なスキーマになります。

  2. タイトルとインデントを指定

    「タイトル」欄でスキーマの名前を、「インデント」で整形幅を選びます。デフォルトのままでも問題なく使えます。

  3. 生成されたスキーマをコピー

    右側にJSON Schema がリアルタイムで表示されます。COPYボタンでクリップボードに保存し、Ajv・OpenAPI仕様書・Postmanなど、スキーマを使う各種ツールに貼り付けて活用してください。

カテゴリ データ形式