宣言と選択を一致させる
初期値は2020-12です。$schemaの宣言と選択が異なればエラーになります。Draft-07のタプルはitems配列、2020-12はprefixItemsを使うため、選択変更だけで移行したことにはなりません。
スキーマと実データの検証
サンプルですぐ試せます。スキーマだけの検査には、検証対象のJSONは不要です。
入力と参照はこのブラウザー内で処理し、検証データの送信や外部参照の取得は行いません。
手動検証の準備ができました。
JSON Schemaバリデーターは、整数が必要な位置の文字列、必須キーの欠落、想定外のプロパティを見つけます。JSONとして読めることと契約を満たすことは別です。実際のレスポンスとルールを並べて原因を調べられます。
JSONスキーマ検証で入力が自動修正されることはありません。キーの欠落とnullは区別され、defaultを書いても不足している値は挿入されません。
JSON Schemaバリデーターの報告にはデータ側とスキーマ側のパスが並びます。/users/0/ageの型違反なら値の位置を、requiredなら親オブジェクトと不足キーのパラメーターを確認できます。
共通定義を毎回ルートへ貼り付ける必要はありません。参照ファイルは絶対$idで登録し、相対参照は基準URIから解決します。ファイル名は表示用であり、参照先の推測には使いません。
初期値は2020-12です。$schemaの宣言と選択が異なればエラーになります。Draft-07のタプルはitems配列、2020-12はprefixItemsを使うため、選択変更だけで移行したことにはなりません。
スキーマ検査は、ルートと読み込んだ全参照を解析し、メタスキーマ検査とコンパイルを行います。データ欄は読みません。参照ファイルには#を含まない一意の絶対$idを指定してください。
Ctrl/Cmd+Enterで手動実行できます。入力や設定の変更は古い処理を中止し、エクスポートを無効にします。サンプル、消去、参照削除はプレビュー後に適用し、一度の取り消しで以前の入力と報告を戻せます。
JSON SchemaバリデーターはAjvでDraft-07、2019-09、2020-12を処理します。条件分岐や組み合わせは選択した方言に従います。未知のキーワードはコンパイルエラーとなり、制約の見落としを成功扱いしません。
JSONバリデーションではformatが初期状態で無効です。有効にするとajv-formatsがemail、date-time、URI、UUIDなどを検査し、未知の形式は拒否します。独立したpatternの評価はこの設定で変わりません。
JSONスキーマバリデータは構文、メタスキーマ、参照解決、インスタンス判定を区別します。完了した報告だけをコピーできます。画面の分類は日本語で、エンジンの技術メッセージは英語原文のまま残ります。
検証は可能な箇所で早期終了しますが、組み合わせの失敗は複数行になる場合があります。instancePath、schemaPath、keyword、パラメーターを確認してください。表示は50件ずつ、ダウンロードは受理された報告全体です。
$schemaの宣言と、利用先が採用するドラフトを確認してください。本ツールはDraft-07、2019-09、2020-12を選べます。初期値は2020-12ですが、既存の定義を自動変換する機能ではありません。
JSON Pointerでuserオブジェクトのageを指します。配列なら/items/0のように添字が入ります。空文字列がルートであり、/は空の名前のキーを指す点に注意してください。
はい。ルートをtype: arrayにしてitemsに要素のルールを定義します。単一スキーマのitemsは全要素に適用されます。位置ごとに違う条件ならドラフトに応じたタプル構文を使います。
allOfはすべて、anyOfは少なくとも一つ、oneOfはちょうど一つの分岐への適合を要求します。oneOfで二つの分岐に当てはまると失敗するため、重なりのある条件を点検してください。
同一文書の定義と、読み込んだローカルファイルを参照できます。別ファイルの根には絶対$idが必要です。ネットワークからの取得は行わず、未登録の参照先はコンパイルエラーになります。
確認したいスキーマの例がありますか?