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
}
此模式修饰符指定除模式中定义之外的任何属性都不会被视为有效。
| 文件扩展名信息 | |
|---|---|
| JavaScript 对象表示法 | |
| 哑剧类型 | |
| 应用程序/json | |
| JSON 文件打开方式 | |