我想使用 json 架构草案 7 来验证数组是否包含多个无序对象。例如,数组应包含学生 A、B,无论其顺序如何。
[{"name": "A"}, {"name": "B"}] //valid
[{"name": "B"}, {"name": "A"}] //valid
[{"name": "A"}, {"name": "C"}, {"name": "B"}] //extra students also valid
[] or [{"name": "A"}] or [{"name": "B"}] //invalid
Run Code Online (Sandbox Code Playgroud)
json schemacontains关键字不支持列表
json schemaTuple validation关键字必须有序
您需要allOfapplicator 关键字。您需要定义多个contains子句。
allOf允许您定义必须全部通过的多个模式。
{
"$schema": "http://json-schema.org/draft-07/schema#",
"allOf": [
{
"contains": {
"required": ["name"],
"properties": {
"name": {
"const": "A"
}
}
}
},
{
"contains": {
"required": ["name"],
"properties": {
"name": {
"const": "B"
}
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)