JSON Schemaの検証エラーを調べる方法
JSONデータとJSON Schemaをそれぞれ入力して検証を実行すると、妥当性と該当する検証内容を確認できます。空欄やJSONの構文エラーは、Schemaの検証より先に確認します。
JSON Schemaの検証エラーを調べる
JSONデータをJSON Schemaに照らして検証し、妥当かどうかと、該当する検証内容を確認できます。入力はJSONデータのテキストとJSON Schemaのテキストに分かれているため、データ側とルール側を切り分けて原因を探したい場面に向いています。型、必須プロパティ、追加プロパティ、配列内の値、列挙値、数値や文字列の範囲など、実装されているルールを確認できます。
入力して検証する手順
- 検証するJSONデータを入力欄に、対応するJSON Schemaをスキーマ欄に貼り付けます。両方の欄は省略できますが、空欄または空白だけの欄があると、データまたはスキーマが不足しているため不適合として扱われます。
- 入力内容を確認し、検証を実行します。まず両方のテキストがJSONとして解析され、その後にSchemaのルールに基づく検証が行われます。JSONの構文に誤りがある場合は、検証結果ではなく解析エラーの説明を確認します。
- 結果の妥当性と詳細を分けて読みます。妥当性が不適合なら、型、必須プロパティ、許可されていない追加プロパティ、配列の各要素、列挙値、数値または文字列の範囲を、入力データとSchemaで照合します。ネストした値も、宣言されたルールに応じて確認されます。
結果の読み方と範囲
有効な結果は、入力したJSONが指定したSchemaの検証を通ったことを示します。不適合の結果では、型が宣言と異なる、必須プロパティがない、追加プロパティが許可されていない、配列要素や値の範囲がルールに合わない、といった該当箇所を手がかりにできます。構文解析に失敗した場合は、Schemaとの適合性を判断する前の段階で止まります。
操作自体の状態は、入力不足、解析失敗、有効なデータ、不適合なデータのいずれでも成功として報告される場合があります。そのため、操作状態だけでなく、別に示される妥当性と詳細を確認してください。この検証結果は、実装されているチェックの範囲を示すもので、JSON Schemaの全機能への対応を意味しません。
使用例
注文データの項目がSchemaの宣言どおりの型かを確認したい場面で、データとSchemaを照合します。
注文データのJSONと、注文番号を文字列として求めるSchemaをそれぞれ入力し、検証を実行します。注文番号を数値で入力した場合は、型に関する不適合の詳細を確認します。
結果には、データが妥当かどうかと、該当する検証内容または解析エラーの説明が表示されます。
制限事項
- 確認できる内容は実装されている検証ルールの範囲に限られます。JSON Schemaの全機能への対応や、未確認の機能の互換性までは判断できません。
よくある間違い
- JSONデータまたはSchemaを貼り付けたつもりでも、空白だけだったりJSONの構文が崩れていたりすると、不適合または解析エラーになります。両方の内容をJSONとして見直し、空欄や余分な記号を取り除いてから再実行してください。
よくある質問
入力欄を空のまま検証できますか?
空欄または空白だけの入力があると、データまたはSchemaが不足しているため不適合として報告されます。両方のテキストを入力して再実行してください。
検証結果が解析エラーになるのはなぜですか?
JSONとして解析できないテキストでは、Schemaとの検証前に解析エラーになります。括弧、カンマ、引用符などを確認して、解析可能なJSONに修正してください。
どのようなSchemaルールを確認できますか?
実装されている範囲では、型、必須プロパティ、追加プロパティ、配列要素、列挙値、数値と文字列の範囲などを確認します。参照、合成、形式、パターンなど、ここで確認されていない機能の対応までは判断できません。