參考
數值型別
JSON Schema 中有兩種數值型別:integer 和 number。它們共用相同的驗證關鍵字。
JSON 沒有表示複數的標準方法,因此在 JSON Schema 中無法測試它們。
integer
integer
型別用於整數。JSON 沒有明確的整數和浮點數型別。因此,小數點的存在與否不足以區分整數和非整數。例如,1
和 1.0
是在 JSON 中表示相同值的兩種方式。JSON Schema 認為無論使用哪種表示法,該值都是整數。
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
。
此變更旨在使其更具關鍵字獨立性。
以下是使用較舊的 Draft 4 慣例的範例
小於 minimum
:json // props { "indent": true, "valid": false } -1
exclusiveMinimum
未指定,因此包含 0
exclusiveMaximum
為 true
,因此不包含 100
大於 maximum