← ハシトシステム トップ English ツール ブログ
生成
対応している形
サンプルのJSONから JSON Schema(draft 2020-12)を作ります。オブジェクト・配列・文字列・数値(整数と小数を区別)・真偽値・null に対応し、入れ子の深さに制限はありません。配列は全要素を見て型を合流させ、型が違うものは anyOf にまとめます。

JSON Schema の生成について

使い方

左の欄にサンプルのJSONを貼って「スキーマを生成」を押すと、右にJSON Schema(draft 2020-12)が出ます。APIのレスポンス例からスキーマの下書きを作りたいとき、設定ファイルの検証を始めたいとき、テストデータの形を機械に確認させたいときに使えます。配列を貼れば、その全要素を見た1つのスキーマになります。

required と format の考え方

「全キーを required にする」を入れると、サンプルに現れたキーをすべて必須にします。厳しめの下書きが欲しいときはこの状態で始め、任意にしたいキーを後から外すほうが速いためです。逆に任意項目が多いデータでは外してください。「format を推定する」は date・date-time・email・uri の4つだけを見ます。当てはまらない文字列には format を付けません(当てずっぽうの制約を足さないため)。

できないこと

サンプルに現れなかった形は分かりません。最小値・最大値・列挙(enum)・正規表現(pattern)・文字列長も、1件のサンプルからは決められないので生成しません。生成物は下書きであり、仕様そのものではないという前提で扱ってください。

よくある質問(FAQ)

生成されたスキーマはそのまま使えますか?

そのまま使える形ですが、サンプル1件分の事実しか含んでいません。スキーマは「このデータに当てはまる形」であって「このAPIの仕様」ではないため、実際に使う前に必ず人が見直してください。特に required と、サンプルに1種類しか現れなかった値の型は、実データの範囲と合っているかを確認する必要があります。

配列の中身の型がばらばらでもよいですか?

はい。配列は先頭の要素だけでなく全要素を見て、型が違うものは anyOf にまとめます。オブジェクトどうしの場合はプロパティを合流させ、required は「全要素に共通して存在したキー」だけに絞ります。整数と小数が混ざった場合は number にまとめます。

入力したデータはサーバーに送信されますか?

いいえ。生成はすべてお使いのブラウザ内のJavaScriptで完結します。入力したJSONがサーバーへ送信・保存されることはありません。