ツール
入力
結果
結果はここに表示されます。モデルの構造化出力、Webhook のペイロード、設定ファイルが弾かれたとき、本当に役立つ答えは一覧です。どのパスが失敗し、それぞれがどのルールに違反しているのか。このバリデーターは、JavaScript の多くのツールの土台になっている JSON Schema 実装 Ajv を allErrors を有効にして実行するので、問題が 5 つあるドキュメントなら 5 行表示されます。各行には値への JSON ポインター、メッセージ、そのエラーを出したスキーマ内のパスが並びます。スキーマはスキーマ欄に、ドキュメントは入力欄に入れてください。
動作のしくみ
- 方言はスキーマ自身の $schema に従います。2020-12 と 2019-09 は Ajv の対応するクラスを、draft-07 または宣言なしの場合は既定のクラスを使います。
- ajv-formats を読み込んでいるため、email、date-time、uri、uuid などの format キーワードは黙って無視されず、きちんと検証されます。
- Ajv の strict モードはオフなので、examples やベンダー独自キーワードのような注釈があっても検証は止まりません。スキーマ自体が不正な場合はその旨を報告します。
データの行き先
どこにも行きません。このツールは完全にブラウザ内で動作します。貼り付けたテキストはページが処理し、サーバーに送信されることも、ログに記録されることもありません。
このツールは無料で登録不要です。結果は開いているページの中にだけあり、どこにも保存されません。
必要なポイント
このツールは無料です。ログインもポイントも必要ありません。
よくある質問
- draft-04 のスキーマが受け付けられないのはなぜですか?
- draft-04 では exclusiveMinimum と exclusiveMaximum が真偽値として定義されていますが、後のドラフトでは数値に変わりました。そのため古いスキーマを新しい方言で実行すると、本来失敗すべきデータが通ってしまうことがあります。推測で処理する代わりに、このツールは $schema の更新をお願いしています。draft-06 のスキーマはキーワードが追加されただけなので、draft-07 として受け付けて検証します。
- 「at」の後ろにあるパスは何を意味しますか?
- 失敗したルールのスキーマパスで、たとえば #/properties/items/items/properties/price/minimum のようになります。各行の最初のパスはデータ内を指し、この 2 つ目のパスはスキーマ内を指します。間違っていたのがデータではなくスキーマのほうだったと分かったときに必要になるのがこちらです。
- $ref の URL をインターネットから取得しますか?
- いいえ。同じスキーマ内の参照(#/$defs/… や #/definitions/…)は解決しますが、リモートの $ref URL はダウンロードしません。リモート参照に依存するスキーマは、その参照名を示すメッセージとともにコンパイルに失敗します。オフラインで検証するには、参照先の定義を $defs に貼り付けてください。
背後にあるオープンソース
このツールは ajv-validator/ajv(MIT)の上で動作しています。同じ処理を自分のプログラムに組み込みたい場合は、そのライブラリを使ってください。
ajv-validator/ajv別の呼び方
- json schema バリデーター
- json schema 検証
- ajv オンライン
- json schema 2020-12
- json schema draft 7
- json バリデーション オンライン