JSON Schema生成
JSONのサンプルを貼り付けると、その形に合う JSON Schema を生成します。APIレスポンスやデータファイルの検証用スキーマの下書きに便利です。配列内のオブジェクトは1つのスキーマに統合し、一部の要素にしかないキーは required から外します。型定義が欲しい場合は JSON→TypeScript型生成 をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
注意事項
- スキーマは貼り付けたJSONの値から推測します。サンプルに現れない取りうる値(列挙値・文字数や数値の範囲・パターンなど)は反映されないため、仕様に合わせて手で追記してください。
- サンプルに全部の要素で現れたキーだけを required にします。サンプルが1件だけだと、本来は省略可能なキーも required になる点にご注意ください。
- 値が1.0のように小数点以下が0の数値は、JSON上は整数として扱われるため integer になります。
- format は値の見た目(日付・日時・メール・URL・UUID)から推測します。同じ位置の値が揃って同じ形式のときだけ付けます。
- 空の配列は要素の型が分からないため、items を付けず何でも許すスキーマになります。
用語解説
JSON Schema
JSONデータの構造(キー・型・必須項目など)を、JSON自身で記述して検証するための仕様です。APIの入力チェックや設定ファイルの補完などに使われます。
required
オブジェクトに必ず含まれていなければならないキーの一覧です。ここにないキーは省略してもかまいません。
additionalProperties
properties に書いていないキーを許すかどうかを決める指定です。false にすると、定義にないキーが含まれたデータは不正になります。
format
date-time・email・uri・uuid など、文字列の形式を表す注釈です。検証ツールによっては形式チェックまで行います。
よくある質問
配列の中のオブジェクトで、キーが揃っていない場合はどうなりますか?
配列内のすべてのオブジェクトを1つのスキーマに統合します。properties にはすべてのキーを載せ、全オブジェクトにあるキーだけを required にします。
生成されたスキーマはそのまま本番で使えますか?
サンプルから推測できる型と構造までが対象です。列挙値、文字数・数値の範囲、正規表現パターンなどはサンプルからは分からないので、仕様に合わせて追記してから使ってください。
draft 2020-12・2019-09・07の違いは何ですか?
このツールが出力するスキーマの範囲(type・properties・required・items・format)では、どのドラフトでも内容は同じで、$schema の値だけが変わります。使っている検証ライブラリが対応するドラフトを選んでください。
nullが混ざった値はどう表されますか?
同じ位置に文字列とnullが現れた場合は、"type": ["null", "string"] のように型の配列で表します。
このページをシェア
