数据类型
type 关键字是 JSON Schema 的基础。它指定 Schema 的数据类型。
JSON Schema 的核心定义了以下基本类型:
在大多数编程语言中都有类似类型,尽管它们可能有不同的名称。
下表从 JSON 类型的名称映射到它们在 Python 中的类似类型:
JSON | Python |
---|---|
string | string [4] |
number | int/float [5] |
object | dict |
array | list |
boolean | bool |
null | None |
下表将 JSON 类型的名称映射到它们在 Ruby 中的类似类型:
JSON | Ruby |
---|---|
string | String |
number | Integer/Float [6] |
object | Hash |
array | Array |
boolean | TrueClass/FalseClass |
null | NilClass |
type
关键字可以是一个字符串或数组:
- 如果是字符串,则是上述基本类型之一的名称。
- 如果是数组,则必须是字符串数组,其中每个字符串是其中一种基本类型的名称,每个元素都是唯一的。在这种情况下,如果 JSON 片段与任何给定类型匹配,则它是有效的。
这是使用type
关键字的简单示例:
{ "type": "number" }
42 // OK
42.0 // OK
"42" //not ok。这不是一个数字,它是一个包含数字的字符串。
在以下示例中,我们接受字符串和数字,但不接受结构化数据类型:
{ "type": ["number", "string"] }
42 // OK
"Life, the universe, and everything" // OK
["Life", "the universe", "and everything"] // not OK
对于这些类型中的每一种,都有仅适用于这些类型的关键字。例如,数字类型有一种指定数字范围的方法,这不适用于其他类型。在本参考中,这些验证关键字及其对应的每个类型都在后面章节中进行了描述。