リファレンス
数値型
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* ≥ minimum
exclusiveMinimum
がtrue
の場合、*x* > minimum
です.
これは、キーワードの独立性を高めるために変更されました。
古いドラフト4の規則を使用した例を以下に示します。
`minimum`より小さい: json // props { "indent": true, "valid": false } -1
`exclusiveMinimum`は指定されていないため、0が含まれます
`exclusiveMaximum`はtrue
なので、100は含まれません
maximum
より大きい