logo
GeekFormat

JSON Schema バリデーター

関連おすすめ

特徴

  • Draft-07準拠:JSON Schema Draft-07の全機能を実装。型、必須フィールド、プロパティ、正規表現、enum、フォーマットを検証
  • 複合ロジック検証:allOf、anyOf、oneOf、notなどの複合キーワードに対応。複雑なネスト構造と多重制約を検証
  • 詳細なエラーレポート:違反したJSONパス、エラータイプ、該当スキーマルールを表示。APIコントラクトの不一致を迅速に特定
  • APIコントラクトテスト:実際のAPIレスポンスがスキーマ定義に準拠しているか検証。フロントエンド/バックエンドの結合テストに利用
  • ブラウザローカル処理:データは外部に送信されず、機密性の高いAPIレスポンスやデータベースエクスポートも安全に検証

よくある質問

APIレスポンスがJSON Schemaに準拠しているか検証するには?

左側にJSON Schema定義、右側に検証対象のJSONデータを貼り付けます。型(type)、必須フィールド(required)、プロパティ(properties)、正規表現(pattern)、enum値、フォーマット(format)を照合し、違反がある場合はエラーパスと詳細メッセージを表示します。

allOf/anyOf/oneOfなどの複合スキーマに対応していますか?

対応しています。JSON Schema Draft-07の全機能を実装しており、allOf(全ての条件を満たす)、anyOf(いずれかの条件を満たす)、oneOf(いずれか1つの条件のみ満たす)、not(条件を満たさない)の複合ロジックを検証できます。

バリデーションエラーの原因を特定するには?

エラーが発生した場合、違反したJSONパス(例: `$.users[0].email`)、エラータイプ(型の不一致、必須フィールド欠落、パターン不一致など)、該当するスキーマルールを表示します。APIコントラクトの不一致やデータ構造の異常を迅速に特定できます。

データパイプラインの入力検証に利用できますか?

はい。ETL処理やデータ取り込みの前に、入力データが事前定義されたスキーマに準拠しているか検証できます。不正なデータを早期に検出し、ダウンストリームシステムへの異常データの流入を防止します。

機密データを含むJSONを検証しても安全ですか?

すべての検証処理はブラウザ内で完結し、データは外部サーバーに送信されません。APIレスポンス、認証トークン、データベースのエクスポートデータもローカルで安全に検証できます。

JSON Schema キーワード早見表

下表は JSON Schema 仕様で最もよく使われる検証キーワードを機能別に分類してまとめたもので、すぐに参照できるようになっています。

キーワード説明
基本型
typeデータ型を指定:string、number、integer、boolean、array、object、null。単一の型または型配列をサポート。
オブジェクト検証
propertiesオブジェクトの各プロパティのサブスキーマを定義します。
required文字列配列で、どのプロパティが必須かを指定します。
additionalPropertiespropertiesで定義されていない追加プロパティを許可するかどうかを制御します。falseまたはスキーマを設定できます。
propertyNamesプロパティ名が一致しなければならないスキーマを制約します(通常はpattern正規表現を使用)。
minPropertiesオブジェクトに含まれる最小プロパティ数。
maxPropertiesオブジェクトに含まれる最大プロパティ数。
列挙型・定数
enum列挙値の配列。データは配列内のいずれかの値でなければなりません。
const定数値。データはこの値と厳密に等しくなければなりません。
数値制約
minimum数値の最小値(境界を含む)。
maximum数値の最大値(境界を含む)。
exclusiveMinimum数値が厳密により大きい(境界を含まない)。
exclusiveMaximum数値が厳密により小さい(境界を含まない)。
multipleOf数値は指定された数の倍数でなければなりません。
文字列制約
minLength文字列の最小長。
maxLength文字列の最大長。
pattern正規表現。文字列はこのパターンに一致しなければなりません。
formatセマンティックフォーマット検証:email、uri、date-time、uuid、ipv4、ipv6、hostnameなど。
配列制約
items配列要素のスキーマを定義します(単一のスキーマはすべての要素に適用されます)。
minItems配列の最小要素数。
maxItems配列の最大要素数。
uniqueItems配列の要素が一意である必要があるかどうか。
contains配列に少なくとも1つの要素がこのスキーマに一致する必要があります。
組み合わせロジック
allOfデータはすべてのサブスキーマに一致しなければなりません(論理積)。
anyOfデータは少なくとも1つのサブスキーマに一致しなければなりません(論理和)。
oneOfデータはちょうど1つのサブスキーマに一致しなければなりません(排他的論理和)。
notデータはこのスキーマに一致してはなりません(論理否定)。
条件付き検証
if条件判定スキーマ。データがifに一致する場合はthenを満たす必要があり、そうでない場合はelseを満たす必要があります。
thenif条件が成立した場合に満たす必要があるスキーマ。
elseif条件が成立しなかった場合に満たす必要があるスキーマ。
参照・再利用
$ref他のスキーマ定義を参照します。ローカル参照(#/$defs/xxx)とリモート参照をサポート。
$defs再利用可能なサブスキーマを定義します(Draft 2019-09+、旧版ではdefinitionsを使用)。
definitionsDraft 4-7で再利用可能なサブスキーマを定義するためのキーワード。
メタ情報
titleスキーマのタイトル説明(注釈、検証には関与しません)。
descriptionスキーマの詳細説明(注釈、検証には関与しません)。
defaultデフォルト値(注釈、検証には関与しません)。
examples例値の配列(注釈、検証には関与しません)。
$schema使用するJSON Schema仕様のバージョンを指定します。
依存関係
dependentRequiredプロパティ依存:あるプロパティが存在する場合、他のプロパティも存在しなければならない(Draft 2019-09+)。
dependenciesDraft 4-7の依存キーワードで、プロパティ依存とスキーマ依存の両方の機能を持ちます。

JSON Schema 各バージョンの違い比較

JSON Schemaは複数のDraftバージョンの進化を経てきました。Draft 7が現在最も広く使用されているバージョンで、Draft 2020-12が最新の安定版です。

機能Draft 4Draft 6Draft 72019-092020-12
type 型検証
required 必須フィールド
enum/const 定数✓ enum
minimum/maximum 数値範囲
exclusiveMinimum/Maximumブール値数値数値数値数値
multipleOf 倍数検証
minLength/maxLength
pattern 正規表現マッチング
format フォーマット検証デフォルトは注釈デフォルトは注釈
items 配列検証
contains 要素包含
minItems/maxItems
uniqueItems
additionalProperties
propertyNames
allOf/anyOf/oneOf/not
if/then/else 条件
$ref 参照
$defs 定義再利用definitionsdefinitionsdefinitions$defs$defs
dependentRequired
prefixItems タプル検証配列形式配列形式配列形式配列形式prefixItems
unevaluatedProperties
$dynamicRef/$anchor✓ $recursiveRef✓ dynamicRef