参考
类型特定关键字
该 type
关键字 是 JSON Schema 的基础。它指定了模式的数据类型。
在核心上,JSON Schema 定义了以下基本类型
这些类型在大多数编程语言中都有类似物,尽管它们可能使用不同的名称。
特定语言的信息:
Python
Ruby
Perl
Objective-C
Swift
下表将 JSON 类型名称映射到 Python 中的类似类型
JSON | Python |
---|---|
字符串 | 字符串 *1 |
数字 | int/float *2 |
对象 | 字典 |
数组 | 列表 |
布尔值 | 布尔值 |
空值 | None |
脚注
[#1] 由于 JSON 字符串始终支持 Unicode,因此它们类似于 Python 2.x 上的 unicode
和 Python 3.x 上的 str
。
[#2] JSON 没有为整数和浮点数定义单独的类型。
该 type
关键字可以是字符串或数组
- 如果它是一个字符串,则它是上面基本类型之一的名称。
- 如果它是一个数组,则它必须是一个字符串数组,其中每个字符串都是基本类型之一的名称,并且每个元素都是唯一的。在这种情况下,如果 JSON 片段与给定的类型中的任何类型匹配,则它就是有效的。
这是一个使用 type
关键字的简单示例
模式
{ "type": "number" }
数据
42
符合模式
数据
42.0
符合模式
数据
"42"
不符合模式
在下面的示例中,我们接受字符串和数字,但不接受结构化数据类型
模式
{ "type": ["number", "string"] }
数据
42
符合模式
数据
"生命、宇宙和一切"
符合模式
数据
["Life", "the universe", "and everything"]
不符合模式
对于每种类型,都有一些只适用于该类型的关键字。例如,数字类型有指定数字范围的方法,而这对于其他类型则不适用。在本参考中,这些验证关键字将在以下章节中与各自的类型一起描述。