JSON Schema ジェネレーター

ブラウザー内でローカル実行

サンプル JSON から Draft 2020-12 の JSON Schema を推論

JSON サンプル

JSON サンプルを貼り付けるか例を読み込むと、スキーマを生成できます。
JSON Schema Generator でできること

サンプル JSON を読み取り、"$schema" URI が https://json-schema.org/draft/2020-12/schema の JSON Schema Draft 2020-12 ドキュメントを出力します。ネストしたオブジェクトはネストした properties に、配列は items スキーマになり、整数は integer、それ以外の数値は number として扱います。null を取りうるフィールドは ["string", "null"] のような型の配列で表します。オブジェクトや配列がほかの型と同じ位置に現れる場合は、型ごとに 1 つの分岐を持つ anyOf を使うため、混在した配列でも生成が失敗しません。

使い方
  1. 1.JSON サンプルを貼り付けるか、.json ファイルを 1 つアップロードまたはドロップするか、例を読み込みます。複数レコードの配列が最も正確な結果になります。
  2. 2.入力に合わせてスキーマが更新されます。2 MB を超える入力は「スキーマを生成」を押すまで待機します。
  3. 3.必要ならタイトルを入力し、「フォーマットを検出」「例を含める」「必須フィールドを推論」「enum を推論」を選びます。
  4. 4.任意フィールド、null のみ、混在型、enum に関する推論メモを確認します。
  5. 5.「サンプルを検証」を選び、スキーマをコピーするか schema.json をダウンロードします。
オプションの仕組み

必須フィールドは、ある位置で見つかったすべてのオブジェクトに存在するキーです。レコードの配列で 1 件でも欠けているキーは任意のままになります。オブジェクトが 1 つだけでは任意のキーを判断できないため、その旨を表示します。フォーマット(email、uri、date-time、date、time、uuid、ipv4)は、その位置のすべての文字列が同じフォーマットに完全一致した場合だけ追加し、検出をオフにすると format キーワードはすべて消えます。enum は既定でオフで、ID、フォーマット付きの値、自由記述ではない、繰り返し現れる少数の値の文字列に対してのみ推論し、サンプルのすべての値を必ず含めます。

検証・制限・プライバシー

「サンプルを検証」は、Ajv の Draft 2020-12 strict モードと ajv-formats でスキーマをコンパイルしてサンプルをチェックし、失敗があれば JSON Pointer とルールを表示します。例から推論したスキーマはサンプルに現れた内容しか表しません。オブジェクトは追加キーを許可したままで、値の範囲、パターン、長さは推測しません。JavaScript の精度を超える数値は型は正しく扱いますが、例には含めません。処理はすべてブラウザー内で行われ、バリデーターは必要になったときだけ読み込まれます。

CodingToolが正式に公開されました

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.tools