リファレンス
数値型
JSONスキーマには、integerとnumberの2つの数値型があります。これらは同じ検証キーワードを共有します。
JSONには複素数を表現する標準的な方法がないため、JSONスキーマで複素数をテストする方法はありません。
integer
integer型は整数に使用されます。JSONには、整数と浮動小数点値を区別する型がありません。したがって、小数点の有無だけでは、整数と非整数を区別するのに十分ではありません。たとえば、1と1.0は、JSONで同じ値を表す2つの方法です。JSONスキーマは、どちらの表現が使用されたかに関係なく、その値を整数と見なします。
int型に相当します。小数部がゼロの数値は整数とみなされます
浮動小数点数は拒否されます
文字列としての数値は拒否されます
number
number型は、整数または浮動小数点数など、あらゆる数値型に使用されます。
float型に相当します。単純な浮動小数点数
指数表記も有効です
文字列としての数値は拒否されます
倍数
数値は、multipleOfキーワードを使用して、指定された数値の倍数に制限できます。任意の正の数値に設定できます。
倍数は浮動小数点数にすることができます
範囲
数値の範囲は、minimumキーワードとmaximumキーワード(または排他的範囲を表すexclusiveMinimumとexclusiveMaximum)を組み合わせて指定します。
検証される値を *x* とすると、以下の条件が真である必要があります。
*x* ≥ minimum
*x* > exclusiveMinimum
*x* ≤ maximum
*x* < exclusiveMaximum
minimumとexclusiveMinimumの両方、またはmaximumとexclusiveMaximumの両方を指定できますが、実際にはそうする意味はありません。
minimumより小さい
minimumは包含的なので、0は有効です
exclusiveMaximumは排他的なので、100は無効です
maximumより大きい
JSON Schemaドラフト4では、exclusiveMinimumとexclusiveMaximumの動作が異なります。そこでは、それらはブール値であり、minimumとmaximumが値から除外されているかどうかを示します。例えば
exclusiveMinimumがfalseの場合、*x* ≥ minimumexclusiveMinimumがtrueの場合、*x* > minimumです.
これは、キーワードの独立性を高めるために変更されました。
古いドラフト4の規則を使用した例を以下に示します。
`minimum`より小さい: json // props { "indent": true, "valid": false } -1 `exclusiveMinimum`は指定されていないため、0が含まれます
`exclusiveMaximum`はtrueなので、100は含まれません
maximumより大きい