JSON Schema バリデーター
JSONデータをJSONスキーマに対してオンライン検証。Draft-07・Draft 2020-12対応。エラーパス(例:$.items[0].name)と詳細メッセージを表示。無料、完全ブラウザ完結。
使い方
- 左側に JSONスキーマ、右側に JSONデータを貼り付けます。
- ドロップダウンからスキーマドラフト(Draft-07またはDraft 2020-12)を選択します。
- Validate ボタンをクリックします(または Ctrl+Enter)。
- 有効な場合、データがスキーマに適合していることを示す緑のメッセージが表示されます。
- 無効な場合、各エラーの JSONパス・エラーメッセージ・追加パラメータが一覧表示されます。
Load Example をクリックすると、サンプルのUserスキーマとJSONが自動入力され、すぐに試せます。
エラー出力の見方
各バリデーションエラーは3つの情報を含みます:
- パス — 失敗した値へのJSONポインター(例:
/items/0/price、トップレベルは(root))。 - メッセージ — AJVによる分かりやすいエラー説明(例:must be integer、must have required property ‘name’)。
- パラメータ — 許可される型・最小値・必要なパターンなどの追加情報。
よく使うJSONスキーマのキーワード
type— JSONの型を制限:string・number・integer・boolean・array・object・null。required— オブジェクトに必須のプロパティ名の配列。properties— オブジェクトの各プロパティの制約を定義。additionalProperties: false—propertiesに定義されていないプロパティを拒否。minimum/maximum— 数値の範囲制約。minLength/maxLength— 文字列の長さ制約。pattern— 正規表現で文字列を検証(例:”^[a-z]+”)。enum— 固定の値セットに制限。items— 配列要素のスキーマを定義。
スキーマの例
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["name", "age"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"age": { "type": "integer", "minimum": 0 },
"email": { "type": "string" }
},
"additionalProperties": false
}
有効なデータ:{"name":"Alice","age":30}
無効なデータ:{"name":"","age":-1,"extra":true} — 3つのエラーが発生します。
FAQ
対応しているJSONスキーマのドラフトは何ですか?
Draft-07(最も広く使用されており、OpenAPI 3.0や多くのバリデーターと互換性あり)とDraft 2020-12(最新仕様)に対応しています。検証前にドロップダウンでドラフトを切り替えてください。
/user/ageのようなエラーパスはどういう意味ですか?
エラーパスはJSON Pointer構文(RFC 6901)に従います。/user/ageはuserオブジェクト内のageプロパティが検証に失敗したことを意味します。ルートオブジェクトは/で表し、配列アイテムは/items/0、/items/1などの形式になります。
JSONスキーマとは何ですか?
JSONスキーマはJSONドキュメントを注釈・検証するための語彙です。JSONオブジェクトの構造・型・必須フィールド・値の範囲・パターンを定義できます。APIのリクエスト/レスポンス検証、設定ファイルの検証、データパイプラインの検証などに広く活用されています。
配列をルートとするJSONを検証できますか?
はい。スキーマを配列として定義し(例:{"type": "array", "items": {"type": "string"}})、データに["a", "b"]のようなJSON配列を貼り付ければ検証できます。
データはサーバーに送信されますか?
いいえ。検証はすべてブラウザ内でAJVライブラリを使用して実行されます。スキーマとJSONデータはお使いのデバイスから外に出ることはありません。