跳到主要内容

数据类型

type 关键字是 JSON Schema 的基础。它指定 Schema 的数据类型。

JSON Schema 的核心定义了以下基本类型:

在大多数编程语言中都有类似类型,尽管它们可能有不同的名称。

下表从 JSON 类型的名称映射到它们在 Python 中的类似类型:

JSONPython
stringstring [4]
numberint/float [5]
objectdict
arraylist
booleanbool
nullNone

下表将 JSON 类型的名称映射到它们在 Ruby 中的类似类型:

JSONRuby
stringString
numberInteger/Float [6]
objectHash
arrayArray
booleanTrueClass/FalseClass
nullNilClass

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

对于这些类型中的每一种,都有仅适用于这些类型的关键字。例如,数字类型有一种指定数字范围的方法,这不适用于其他类型。在本参考中,这些验证关键字及其对应的每个类型都在后面章节中进行了描述。