JSON Schemaバリデーター
JSONデータをJSON Schemaに対して検証し、詳細なエラーメッセージとパスハイライトで結果を確認できます。
このツールについて
JSON Schemaバリデーターは、JSONデータが指定されたJSON Schema 定義に適合しているかを検証する無料のブラウザベースツールです。 JSON Schemaは、JSONドキュメントの構造、型、制約を記述するための 業界標準です。API開発、構成管理、データパイプラインの検証に 広く採用されており、データがアプリケーションロジックに到達する 前にデータの整合性を保証します。
このツールは <a href="https://ajv.js.org/" target="_blank" rel="noopener noreferrer" className="text-primary underline underline-offset-2"
Ajv (Another JSON Validator)
を搭載しています。AjvはJavaScript用の最速かつ最も広く使用
されているJSON Schemaバリデーターです。Draft-04、Draft-06、
Draft-07、Draft 2019-09 / 2020-12のJSON Schemaドラフトに
対応しています。バリデーターはallErrorsモードが有効で
実行されるため、最初のエラーで停止するのではなく、すべての
検証エラーを一度のパスで報告します。これにより、データ内の
すべての問題を一覧で把握できます。
フォーマット検証はajv-formatsパッケージにより提供され、
JSON Schema仕様で定義された一般的な文字列フォーマット
(email、uri、date、date-time、
ipv4、ipv6、uuid など)に対応しています。
スキーマで型と構造だけでなく、セマンティックな文字列
フォーマットもカスタム検証ロジックなしで強制できます。
すべての処理はブラウザ内で完結します。JSONデータとスキーマが マシンの外に出ることはなく、サーバーへの通信、ログ記録、 サードパーティの分析も一切ありません。内部APIレスポンス、 認証設定、プライベートデータコントラクトなどの機密ペイロードの 検証にも安全に使用できます。失敗するAPIリクエストのデバッグ、 デプロイ前のスキーマ定義のテスト、サンプルを使ったJSON Schemaの学習など、このバリデーターは即座に詳細なフィードバック を提供します。
使い方
- 左側の JSON Data パネルにJSONデータを貼り付けまたは入力します。
- 右側の JSON Schema パネルにJSON Schemaを貼り付けまたは入力します。
- Validate ボタンをクリックするか Ctrl+Enter を押して検証を実行します。
- 有効な場合は緑の成功メッセージが表示されます。無効な場合は、各エラーがインスタンスパス、キーワード、メッセージ、パラメータ付きでリストされます。
- Sample ボタンでサンプルJSONデータとスキーマを読み込み、検証の動作を確認できます。
- Copy をクリックするか Ctrl+Shift+C で検証結果をクリップボードにコピーします。
- Clear で両パネルをリセットしてやり直します。
JSON Schemaの人気サンプル
よくある質問
JSON Schema検証とは何ですか?
JSON Schema検証は、JSONドキュメントが期待される型、必須フィールド、値の範囲、文字列パターン、その他の制約を定義するスキーマに適合しているかを検査するプロセスです。APIのリクエスト・レスポンスボディ、設定ファイル、データ交換フォーマットの検証に一般的に使用されます。
どのJSON Schemaドラフトに対応していますか?
このツールはAjvを使用しており、Draft-04、Draft-06、Draft-07、Draft 2019-09 / 2020-12に対応しています。スキーマで$schemaキーワードを使用してドラフトバージョンを指定できます。省略した場合、AjvはDraft-07の動作をデフォルトとします。
どのフォーマット検証に対応していますか?
ajv-formatsプラグインにより、email、uri、uri-reference、date、date-time、time、ipv4、ipv6、uuid、hostname、json-pointer、regexなどの標準文字列フォーマットの検証が提供されます。スキーマでformatキーワードを使用してこれらを適用できます。
データは安全ですか?
はい。すべての検証はJavaScriptモジュールとしてロードされたAjvライブラリを使用してブラウザ内で完全に実行されます。サーバーへのデータ送信は一切ありません。ブラウザの開発者ツールのネットワークタブで確認できます。
なぜすべてのエラーが一度に表示されるのですか?
バリデーターはAjvのallErrorsオプションを有効にして実行されます。これにより、最初の検証失敗で停止するのではなく、ドキュメント全体のチェックを継続します。すべての問題を完全なリストとして取得できるため、エラーを一つずつ繰り返し修正する必要がなく、一度のパスで修正できます。
エラーメッセージのインスタンスパスとは何を意味しますか?
インスタンスパス(例:/address/zip)は、JSONデータ内で検証エラーが発生した正確な場所を識別するJSONポインターです。/のパスはドキュメントのルートを指します。/users/0/emailのようなネストパスは、配列やオブジェクト内の特定のプロパティを指します。
$ref参照を含むスキーマに対して検証できますか?
はい。Ajvは同一スキーマドキュメント内の内部参照(例:#/definitions/Address、新しいドラフトでは$defs)の$refをサポートしています。ツールが完全にクライアントサイドで動作するため、外部URLベースの参照は自動的にフェッチされませんが、参照されるスキーマをdefinitionsにインラインで含めることで対応できます。