打开 JSON 文件

信息、提示和说明

JSON 模式

JSON 模式概念源自 XML 模式,XML 模式是用于描述和验证 XML 文档的文档。与其祖先 JSON 模式类似,描述了哪些数据可以存储在符合要求的 JSON 文档中以及如何格式化这些数据。根据需要存储在 JSON 文档中的数据,架构可能会有所不同。

JSON schema 可以精确地描述 JSON 文件应该如何构建、某些字段应该使用什么数据类型、数据类型可能有什么值等等。

例如,让我们考虑一个示例,其中有一组定义矩形的 JSON 文档。其中一份文件如下所示。

{
 “width”: 10,
 “height”: 20
}

描述这些 JSON 文档的架构如下所示:

{
 “type”: “object”,
 “properties”: {
  “width”: {“type”: “number”},
  “height”: {“type”: “number”}
 }
}

该模式描述了“对象”类型的元素,它具有两个数字属性:宽度和高度。上面的模式仅验证宽度和高度的数据类型。它不验证它们在对象中的存在。根据上面的架构,即使是空的 {} 对象也是有效的。为了使架构检查这两个属性是否都存在,我们需要使用“required”关键字。

{
 “type”: “object”,
 “properties”: {
  “width”: {“type”: “number”},
  “height”: {“type”: “number”}
 }
},
 “required”: [“width”, “height”]
}

上面的模式将仅验证同时具有高度和宽度的对象。尽管如此,它仍然允许对象具有附加属性,如下所示:

{
 “width”: 10,
 “height”: 20,
 “salary”: 300
}

为了防止像下面这样的对象验证并将属性仅限制为宽度和高度,我们需要使用“additionalProperties”修饰符。

{
 “type”: “object”,
 “properties”: {
  “width”: {“type”: “number”},
  “height”: {“type”: “number”}
 },
 “required”: [“width”, “height”],
 “additionalProperties”: false
}

此模式修饰符指定除模式中定义之外的任何属性都不会被视为有效。