JSON データから JSON Schema を自動生成し、型推論を実行
機能
- インテリジェント型推論: JSON 値からデータ型を自動検出、文字列、数値、ブール値、配列、オブジェクト、null を含む、email、URL、日付、時刻などの形式をスマート検出
- マルチバージョンサポート: JSON Schema Draft 2020-12、2019-09、Draft-07、Draft-04 をサポート、適切な $schema URI とバージョン固有の機能を提供
- 検証ルール: 必須フィールド、型制約、形式検証、厳格モードを設定、additionalProperties 制御で堅牢な schema 定義を実現
- 柔軟な設定: API ドキュメントと検証ニーズに基づいて、フィールド説明、例、厳格な検証ルールを含めるか除外するかを選択
使用方法
- JSON データ入力: サンプル JSON データを貼り付けるか、例を読み込んで開始
- オプション設定: Schema バージョンを選択、必須フィールド、説明、その他のオプションを有効化
- Schema 生成: 生成をクリックして自動型推論で JSON Schema を作成
- Schema 使用: 生成された schema をコピーまたはダウンロードして API 検証またはドキュメントに使用
技術詳細
JSON Schema 仕様
JSON Schema は、JSON データの構造と検証ルールを記述するための宣言型言語です。'type'、'properties'、'required'、'items'、'additionalProperties' などのキーワードを使用して制約を定義します。仕様は複数のドラフトバージョンを経て進化しており、Draft 2020-12 が最新の安定バージョンです。Schema 自体が有効な JSON ドキュメントであり、検証、ドキュメント化、コード生成に使用できます。
型推論アルゴリズム
ジェネレーターは JSON 値を分析して適切な schema 型を推論します。プリミティブの場合、string、number、integer、boolean、または null を検出します。文字列の場合、正規表現パターンを使用して形式検出を適用し、email、uri、date、time、ipv4、ipv6、その他の標準形式を識別します。オブジェクトの場合、プロパティ定義を持つネストされた schema を再帰的に生成します。配列の場合、最初の要素から schema を推論します。
検証キーワード
JSON Schema は豊富な検証キーワードを提供:データ型用の 'type'、必須フィールド用の 'required'、オブジェクト schema 用の 'properties'、配列用の 'items'、数値用の 'minimum'/'maximum'、文字列用の 'minLength'/'maxLength'、正規表現検証用の 'pattern'、許可値用の 'enum'、email や URL などのセマンティック検証用の 'format'。これらのキーワードを組み合わせて包括的な検証ルールを作成します。
よくある質問
- JSON Schemaとは何ですか、なぜ使用するのですか?
- JSON Schemaは、JSONドキュメントに注釈を付けて検証するための語彙です。JSON形式自体を使用してデータ構造、制約、検証規則を記述します。利点には、自動データ検証、APIドキュメント、コード生成、開発者エクスペリエンスの向上、契約ベースの開発が含まれます。API設計、設定検証、フォーム生成で広く使用されています。
- このツールはあらゆるJSONからスキーマを生成できますか?
- はい!このツールは、任意の有効なJSON入力を分析し、対応するJSON Schema Draft-07互換スキーマを生成します。オブジェクト、配列、文字列、数値、ブール値、nullを含むすべてのJSONデータ型を処理します。サンプルデータから型、必須フィールド、基本パターンを推論します。複雑なシナリオでは、生成されたスキーマを手動で調整する必要がある場合があります。
- 生成されたスキーマはどの程度正確ですか?
- ジェネレーターは、サンプルデータ分析に基づいてスキーマを作成します。データ型と構造を正確に識別しますが、制約については保守的な仮定をします。例えば、数値が正の値のみであるべきか、文字列が特定のパターンに一致する必要があるかは、これらの制約がすべてのサンプルに表示されない限りわかりません。常にドメイン固有の検証規則で生成されたスキーマをレビューして強化してください。
- 生成されたスキーマを検証に使用できますか?
- もちろんです!生成されたスキーマは、Ajv、joi、json-schemaライブラリなどのJSON Schemaバリデーターと完全に互換性があります。APIリクエスト/レスポンス、設定ファイル、ユーザー入力の検証に使用できます。スキーマはJSON Schema Draft-07仕様に従っており、Node.js、Python、Java、またはJSON Schemaをサポートする任意の言語に統合できます。
- 異なるJSON Schemaドラフト間の違いは何ですか?
- JSON Schemaは複数のドラフトを経て進化しました(Draft-04、Draft-06、Draft-07、2019-09、2020-12)。このツールは広くサポートされているDraft-07スキーマを生成します。主な違い:Draft-07はif/then/else条件を追加、Draft 2019-09は語彙システムを導入、Draft 2020-12はunevaluatedPropertiesを追加。ほとんどの用途で、Draft-07は優れた互換性と機能セットを提供します。
関連ドキュメント
- JSON Schema 公式ウェブサイト - JSON Schema 公式仕様とドキュメント
- JSON Schema を理解する - JSON Schema の概念と使用法の包括的ガイド
- JSON Schema Draft 2020-12 - 最新の JSON Schema 仕様ドキュメント
- JSON Schema バリデーター - スキーマに対して JSON を検証するオンラインツール
- OpenAPI と JSON Schema - OpenAPI 仕様で JSON Schema がどのように使用されるか