JSON Schemaバリデーター
JSONとJSON Schemaを入力し、Draft 2020-12の仕様で検証するツールです。型の不一致、必須項目の欠落、enum、数値・文字列の制約などの違反を、データ内の場所とSchemaの場所、理由つきで一覧表示します。JSONの構文エラー、Schema自体の不備、データの検証エラーを区別して表示し、すべてブラウザ内で処理されます。
対応仕様: JSON Schema Draft 2020-12($schema が未指定、または次の値の場合のみ検証します)。format は注釈として扱い、検証しません。 https://json-schema.org/draft/2020-12/schema
検証結果
JSONとJSON Schemaを入力すると、検証結果がここに表示されます。
使い方
- 左に検証したいJSON、右にJSON Schemaを入力します。「サンプルを読み込む」で動作を試せます。
- 入力すると自動で検証され、「検証結果」に適合しているかどうかが表示されます。
- 違反がある場合は、データの場所(JSON Pointer)、理由、Schemaの場所が一覧で表示されます。
- 構文エラーやSchemaの不備、解決できない$refがある場合は、その内容が表示されます。
このツールについて
JSON Schemaは、JSONデータの構造や型、値の制約を定義するための仕様です。APIのリクエスト・レスポンスや設定ファイルが期待どおりの形をしているかを確認するのに使われます。
このツールはDraft 2020-12に対応しています。$schema が別のバージョンを指している場合は、誤った仕様で検証しないよう対応外として表示します。同じSchema内の参照(#/$defs/... など)は解決できますが、外部URLの参照は自動で取得せず、未解決の参照として表示します。format キーワードは仕様の既定どおり注釈として扱い、検証しません。
入力したJSONとSchemaがサーバーへ送信されることはありません。
データを {"age":"20"}、Schemaを {"type":"object","properties":{"age":{"type":"integer"}}} にすると、/ageに型違反が出ます。データを {"age":20} に直すと適合します。数字に見える文字列が自動で整数に変換されることはありません。
propertiesに書いた項目も、requiredで指定しなければ省略可能です。この例では {} も適合するため、型を確認したいのか、必須入力も確認したいのかを分けてSchemaを設計します。エラーのパスと制約の種類を一緒に見ると修正箇所を絞れます。
よくある質問
Draft 7など古いバージョンのSchemaは使えますか?
現在はDraft 2020-12のみに対応しています。$schema にDraft 7などが指定されている場合は、対応外の仕様として表示し、検証は行いません。
email などの format は検証されますか?
Draft 2020-12の既定では format は注釈として扱われるため、このツールでも検証しません。形式を厳密に確認したい場合は pattern を使用してください。
外部ファイルを参照する$refは使えますか?
外部URLやファイルの参照は自動で取得しません。未解決の参照として表示されるため、参照先を同じSchemaの $defs に含めてください。