关键字" items"似乎与" array"相关联在我见过的大多数json架构示例中。但是我尝试使用这个有用的工具将它与一个对象一起使用:http://www.jsonschemavalidator.net/(JSON Schema Draft 4)并且它可以工作。我找不到任何文件说明这是合法的,虽然对我来说是对的。
"value": {
"type": "object",
"items": ...
}
这真的合法吗?
答案 0 :(得分:1)
以下是您要查找的文档。
某些验证关键字仅适用于一种或多种基本类型。当实例的原始类型无法通过给定关键字验证时,此关键字和实例的验证应该成功。
为了说明这个概念,请以此模式为例。
{
"items": { "type": "string" },
"maxLength": 2,
"required": ["foo"]
}
["foo"]
验证
items
- >通过maxLength
- >忽略required
- >忽略 { "foo": "bar" }
验证
items
- >忽略maxLength
- >忽略required
- >通过 "foo"
无法验证
items
- >忽略maxLength
- >失败required
- >忽略 3
验证
items
- >忽略maxLength
- >忽略required
- >忽略尽管可以这种方式编写模式,但建议不要在单个模式中混合使用类型关键字。您可以使用anyOf
来获得更易读的模式。
{
"anyOf": [
{
"type": "string",
"maxLength": 2
},
{
"type": "array",
"items": { "type": "string" }
},
{
"type": "object",
"required": "foo"
}
]
}