data

JSON Schema 生成ツール

サンプル JSON から JSON Schema を生成し、Draft 2020-12 または Draft 7 でローカル検証できます。

このワークフローの関連ガイド: API デバッグにローカルブラウザーツールが役立つ理由

このツールについて

DevCove JSON Schema ジェネレーターは、サンプル JSON を実用的な schema の出発点に変換し、同じワークスペースで別の JSON ドキュメントを検証します。API レスポンス、モック、fixture、設定ファイル、ドキュメント草案に使えます。生成と検証はブラウザー内でローカル実行されます。

使い方

実際の JSON 例があり、API 検証、モック、ドキュメント用の schema が必要なときに使います。

  1. 代表的な JSON オブジェクトまたは配列をサンプル JSON に貼り付けるか、読み込み済みの API レスポンス例を使います。
  2. 新規プロジェクトは Draft 2020-12、既存バリデーターが旧版を要求する場合は Draft 7 を選びます。
  3. サンプルで必須プロパティを定義したい場合は厳密、緩い出発点が欲しい場合は柔軟を選びます。
  4. 形式推論を有効にして email、URI、UUID、date、date-time などの一般的な文字列を検出します。
  5. schema を生成をクリックし、契約として扱う前に生成された JSON Schema を確認します。
  6. 検証用 JSON に別の JSON ドキュメントを貼り付け、データを検証で生成 schema に対してチェックします。
  7. API、fixture、ドキュメントの要件に合ったら schema をコピーまたはダウンロードします。

機能

再利用可能な検証契約が必要なチーム向けに、JSON フォーマッターとは独立した schema ワークスペースとして設計されています:

  • オブジェクト、配列、ネスト、オブジェクト配列、プリミティブ、null から JSON Schema を生成。
  • 既定は JSON Schema Draft 2020-12。旧バリデーター向けに Draft 7 も利用可能。
  • 厳密 / 柔軟の必須フィールドモードでサンプルが schema をどれだけ拘束するか制御。
  • 配列項目のマージにより、全行にない任意フィールドを必須にしない。
  • null と具体値が混在する nullable フィールドの推論。
  • email、URI、UUID、date、date-time の任意形式推論。
  • 生成または貼り付けた schema に対するローカル Ajv 検証。
  • インスタンスパス、キーワード、パラメータ付きの読みやすい検証エラー。
  • 生成 schema ファイルのコピーとダウンロード。
  • 100% ブラウザー内処理 — サンプル、schema、検証データはアップロードされません。

よくある質問

JSON Schema とは?

JSON Schema は JSON データの形状を記述する語彙です。オブジェクトプロパティ、必須フィールド、型、配列、形式、制約を定義します。API 検証、ドキュメント、モック、テストで使われます。

Draft 2020-12 とは?

JSON Schema 仕様のバージョンです。Draft 2020-12 は新規作業のモダンな既定値で、Draft 7 は旧ツールやプラットフォームでよく使われます。このジェネレーターではどちらも選べます。

生成された schema は最終版?

強力な出発点として扱い、自動契約とはみなさないでください。必須フィールドを確認し、最小長や enum などのビジネスルールを追加し、サンプルで証明できない点を調整してください。

厳密必須モードの動作は?

厳密モードでは、そのレベルの全サンプルオブジェクトに現れるプロパティを必須にします。オブジェクト配列では、1 行でも欠けていれば必須になりません。

柔軟モードはいつ使う?

サンプルが不完全、API フィールドがしばしば任意、または手動でルールを絞る前に許容的な schema が欲しいときに使います。

email や URI などの JSON Schema 形式も検証する?

はい。形式推論が有効なとき、email、URI、UUID、date、date-time などの一般的な形式を追加・検証できます。

JSON はアップロードされる?

いいえ。schema 生成と検証はローカル JavaScript と Ajv でブラウザー内実行されます。DevCove はサンプル、schema、検証データをアップロードまたは保存しません。