JSON Schema ジェネレーター(Draft 2020-12)

サンプルの JSON から JSON Schema(draft 2020-12)を生成します。型、必須キー、null 許容のユニオン、配列の items、email や date-time などの文字列フォーマットに対応。

すべてブラウザ内で実行されます。データがアップロードされることはありません。

関連ツール

すべて表示

JSON Schema ジェネレーターとは?

サンプルのドキュメントから JSON Schema を推論します。各プロパティの型を記述し、配列の要素を 1 つの items スキーマにまとめ、必須キーを列挙し、null 許容の値を型のユニオンで示し、一般的な文字列フォーマットを検出することもできます。

JSON Schema ジェネレーターの使い方

  1. JSON 入力 に JSON を貼り付けるか、サンプルを読み込む や ファイルを開く を使います。
  2. 必要に応じて スキーマのタイトル を設定します。
  3. キーを必須 (required) にする、文字列フォーマットを検出、追加プロパティを禁止 を切り替えます。
  4. JSON Schema の出力は入力に合わせて更新されます。コピー または ダウンロード を使います。

例

入力
{"id":1,"email":"a@b.co"}
出力
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": [
    "id",
    "email"
  ]
}

JSON Schema ジェネレーターを使うべき場面

API の契約、設定の検証、フォーム生成の出発点として使います。1 つのサンプルから推論したスキーマの質はそのサンプル次第です。実際のデータの検証に使う前に、minimum、enum、pattern などの制約を手動で追加してください。

JSON Schema ジェネレーターの仕組み

サンプルを再帰的にたどり、各位置で見つかった JSON の型(integer、number、string、boolean、object、array、null)を集めます。整数と小数が混在する場合は number になり、複数の型がある場合は ["object", "null"] のような type 配列になります。オブジェクトの配列では、すべてのオブジェクトにあるプロパティだけが必須になります。フォーマットの検出では、文字列を date-time、date、time、email、uuid、uri、ipv4 のパターンと照合し、すべての値が一致した場合にのみ format を追加します。結果には $schema: https://json-schema.org/draft/2020-12/schema が宣言されます。

一般的な使用例

  • API のリクエストボディのスキーマを素早く作る
  • ajv や CI のチェックで設定ファイルを検証する
  • Webhook のペイロードの形を文書化する
  • JSON Schema を受け付けるツールでスキーマからフォームを生成する

よくある質問

どのドラフトが生成されますか?

Draft 2020-12 で、$schema キーワードで宣言されます。使われるキーワード(type、properties、required、items、format、additionalProperties)は draft-07 でも有効です。

オプショナルなプロパティはどのように判定されますか?

オブジェクトの配列からのみ判定されます。一部の要素でキーがない場合、そのキーは required から外れます。単一のオブジェクトでは、オプションがオンのときすべてのキーが必須になります。

format の検証は強制されますか?

JSON Schema では format は既定で注釈です。ajv などのバリデーターでは、フォーマット検証(ajv-formats)を有効にする必要があります。

おすすめの次のステップ

JSON スキーマバリデーター
Ajv とフォーマットチェックで、JSON データを JSON スキーマ(draft 2020-12、2019-09、07)に照らして検証。すべてのエラーにインスタンスのパスを表示。ブラウザ内で動作します。
JSON フォーマッター
JSON をスペース 2 つ・4 つ・タブで整形(プリティプリント)し、キーの並べ替えや、構文エラーの正確な行と列の表示にも対応。処理はブラウザ内で完結します。
QR コードジェネレーター
リンク、テキスト、Wi-Fi 接続情報、連絡先、メール、SMS、電話番号の QR コードを無料で作成。誤り訂正、サイズ、色を設定でき、PNG または SVG でダウンロードできます。
JWTジェネレーター
HS256/384/512、RS、PS、ES、EdDSAで署名付きJSON Web Tokenを作成します。ペイロードの編集、expとiatの設定、鍵やシークレットの生成がすべてブラウザ内で行えます。
CSS box-shadowジェネレーター
CSSのbox-shadowを視覚的に作成します。複数レイヤーの重ね、オフセット、ぼかし、広がり、inset、RGBAの不透明度に対応し、ライブプレビューで見ながらコードをコピーできます。
CSSグラデーションジェネレーター
ドラッグできるカラーストップ、角度、繰り返しモード、OKLCH補間に対応した、線形・放射・円錐のCSSグラデーションを設計します。ライブプレビューで確認し、コードをコピーできます。

他のカテゴリを見る