JSON Schema バリデーター
すべてブラウザ内で動きます。ファイルやデータが外部に送られることはありません。
このツールについて
片側にJSON Schema、もう片側にJSONドキュメントを貼り付けると、データがスキーマに合っているかを確認できます。エラーはすべて、ドキュメント内の正確なパスと違反したルールとともに一覧表示されるので、必須フィールドの欠落なのか、型の誤りなのか、メールアドレスなどのフォーマット違反なのかがひと目でわかります。
何をどこまでチェックし、エラーはどう表示される?
このツールは最初のエラーで止まらず、スキーマのすべてのルールに対して一度に検証を行うので、1回のチェックで問題を全部洗い出せます。各エラーには、/users/0/email のようなJSON Pointer形式のパス、requiredやtype、formatといった違反したキーワード、そしてAjvが生成する具体的な説明が表示されます。可能な場合は、貼り付けたJSON側の行番号も示されるので、括弧を数えなくても問題の値に直接ジャンプできます。文字列が正しいメールアドレスや日付、URLかどうかといったフォーマットチェックは、ajv-formatsパッケージが担っています。
検証の前に、スキーマとドキュメントの両方がJSONとしてパースされ、構文エラーがあればそれぞれ行番号付きで報告されます(単なる「失敗」という表示にはなりません)。スキーマ自体が壊れていてAjvがコンパイルできない場合、たとえば対応していないキーワードを参照しているような場合は、それも別のコンパイルエラーとして表示されます。
対応しているJSON Schemaのドラフトは?
このツールはスキーマの$schemaフィールドを読み取り、それに応じてバリデーターを自動的に切り替えます。Draft 2020-12を宣言したスキーマはAjvの2020ビルドでコンパイルされ、それ以外(従来のDraft-07形式を含む)は標準のAjvにフォールバックします。つまり、どちらの形式のスキーマを貼り付けても、モードを手動で選ぶ必要はありません。ドラフトごとの違いを含む仕様の全体はjson-schema.orgを参照してください。
スキーマやデータはどこかに送信される?
されません。検証はすべてブラウザ内で完結し、広く使われているJSON SchemaバリデーターであるAjvを利用しますが、貼り付けたスキーマもドキュメントもどこにも送信されません。設定ファイルやAPIのペイロード、実際のユーザーデータや認証情報を含むテストフィクスチャをチェックする際にも重要なポイントです。
APIの契約となるスキーマを書くとき、CIでペイロードの検証が失敗する原因を調べるとき、デプロイ前に設定ファイルを再確認するときなどに使ってください。