本文へスキップ
にゃんこツール

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"] のように型の配列で表します。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる