サンプルのJSONから draft 2020-12 のスキーマを作る
null に対応し、入れ子の深さに制限はありません。配列は全要素を見て型を合流させ、型が違うものは anyOf にまとめます。
左の欄にサンプルのJSONを貼って「スキーマを生成」を押すと、右にJSON Schema(draft 2020-12)が出ます。APIのレスポンス例からスキーマの下書きを作りたいとき、設定ファイルの検証を始めたいとき、テストデータの形を機械に確認させたいときに使えます。配列を貼れば、その全要素を見た1つのスキーマになります。
「全キーを required にする」を入れると、サンプルに現れたキーをすべて必須にします。厳しめの下書きが欲しいときはこの状態で始め、任意にしたいキーを後から外すほうが速いためです。逆に任意項目が多いデータでは外してください。「format を推定する」は date・date-time・email・uri の4つだけを見ます。当てはまらない文字列には format を付けません(当てずっぽうの制約を足さないため)。
サンプルに現れなかった形は分かりません。最小値・最大値・列挙(enum)・正規表現(pattern)・文字列長も、1件のサンプルからは決められないので生成しません。生成物は下書きであり、仕様そのものではないという前提で扱ってください。
そのまま使える形ですが、サンプル1件分の事実しか含んでいません。スキーマは「このデータに当てはまる形」であって「このAPIの仕様」ではないため、実際に使う前に必ず人が見直してください。特に required と、サンプルに1種類しか現れなかった値の型は、実データの範囲と合っているかを確認する必要があります。
はい。配列は先頭の要素だけでなく全要素を見て、型が違うものは anyOf にまとめます。オブジェクトどうしの場合はプロパティを合流させ、required は「全要素に共通して存在したキー」だけに絞ります。整数と小数が混ざった場合は number にまとめます。
いいえ。生成はすべてお使いのブラウザ内のJavaScriptで完結します。入力したJSONがサーバーへ送信・保存されることはありません。