JSON Schema バリデーター

JSON データを JSON Schema 定義に対して検証。パス付きの詳細なエラーレポートを取得。すべてブラウザ内で処理。

即時検証 エラー詳細 クライアント側処理

JSON Schema バリデーターの使い方

1

スキーマを入力

期待される構造を記述する JSON Schema を定義してください。

2

データを入力

スキーマに対して検証したい JSON データを貼り付けてください。

3

検証

検証をクリックして、エラーの有無を確認してください。

JSON Schema とは

JSON Schema は、JSON ドキュメントの注釈付けと検証を可能にする語彙です。アプリケーションに必要な JSON データの契約と、そのデータとの相互作用方法を提供します。JSON Schema は検証、ドキュメント作成、モックデータ生成に使用されます。

主な特徴

型検証

string、number、integer、boolean、array、object、null の型を検証

制約

最小/最大長、範囲、パターン、必須フィールドなど

構造定義

ネストされたオブジェクト、配列、複雑なデータ構造を定義

よくある質問

どのバージョンの JSON Schema に対応していますか?

このツールは Ajv ライブラリを通じて JSON Schema Draft-07、Draft 2019-09、Draft 2020-12 に対応しています。最も一般的なスキーマ機能に対応しています。

ネストされたオブジェクトの検証はできますか?

はい!JSON Schema は深くネストされたオブジェクトと配列に対応しています。任意のネストレベルでプロパティとアイテムを定義し、各フィールドに個別の検証ルールを設定できます。

スキーマ自体が無効な場合はどうなりますか?

ツールはまずスキーマ自体が有効な JSON Schema であるかを検証します。スキーマにエラーがある場合、データの検証を試みる前にそのエラーが報告されます。

最もよく使われている JSON Schema キーワードはどれですか?

type(string、number、object、array、boolean、null)、ネストされたスキーマを持つ properties、必須キーを列挙する required、固定値セット用の enum、正規表現で文字列を制約する pattern、そして範囲チェックの minimum/maximum と minLength/maxLength がよく使われます。additionalProperties: false を使うと、オブジェクトに余分なキーが入るのを防げます。これらを組み合わせることで、API 検証ルールの大部分をカバーできます。

date-time や email のような format キーワードはどのように動作しますか?

現代の JSON Schema では、format はデフォルトでは自動的なアサーションではなく注釈(annotation)です。バリデーターは設定された場合にのみこれを強制します。このことは 2020-12 仕様で、独立した format-assertion ボキャブラリーによって明示されました。強制を保証する必要がある場合は pattern やカスタムキーワードを使用し、そうでない場合は format を相互運用性のためのメタデータとして扱ってください。

$ref とは何ですか?スキーマの再利用はどのように機能しますか?

#/$defs/address を指す $ref は、$defs 配下のスキーマフラグメントを参照し、使用される場所すべてでそのフラグメントに対して検証を行います。これが重複を排除する仕組みです。ドラフト 2020-12 では、以前の definitions が $defs に改名され、コメントツリーのような再帰的構造のために $dynamicRef が正式化されました。参照は外部ドキュメントを指すこともできますが、ローカルにバンドルする方が一般的です。

oneOf、anyOf、allOf はどう違いますか?

allOf はすべてのサブスキーマの検証を要求します。これは積集合であり、ベーススキーマに追加の制約を合成するために使われます。anyOf は少なくとも 1 つのサブスキーマの検証を要求します。これは和集合であり、ポリモーフィックなペイロードに使われます。oneOf はちょうど 1 つだけの検証を要求します。2 つまたは 0 個のサブスキーマが検証を通ると失敗となり、これは人が期待するよりも厳しく、重複するスキーマで予期しないエラーが発生するよくある原因です。

draft-07 から 2020-12 の間で何が変わりましたか?

2020-12 では、仕様が個別に交渉可能なボキャブラリー(validation、annotation、format-assertion)に分割され、definitions が $defs に改名され、exclusiveMinimum が単純な数値に簡略化され、旧来の items キーワードが prefixItems と items に置き換えられました。ほとんどのツールは両方をサポートしており、draft-07 が依然として最も広く展開されていますが、2020-12 が現行の公開標準です。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}