我正在尝试编写 Json 模式来验证包含以下内容的 json 文件:
{
“1号”,
“根属性”:
[
{
“属性1”:“值1”
},
{
“属性2”:“值2”
}
]
}
该架构应处理以下场景:
有人可以帮忙吗?
此外,模式是否是处理这种深度验证的正确方法?
当我尝试对 rootProperty 数组使用“items”关键字并在所需条件内提到 property1 和 property2 时,会对数组的每个元素评估这些条件,这会导致错误,指出第一个元素中缺少 property2,第二个元素中缺少 property1元素。 此外,使用“包含”会导致错误,指出对象包含无法针对任何属性或附加属性进行评估的属性。
要使用 JSON Schema 验证数组内的属性,您可以使用 contains 和 minContains 关键字来确保 property1 和 property2 至少存在一次。这是一个应该满足您的要求的架构:
json
{
"type": "object",
"properties": {
"number": { "type": "string" },
"rootProperty": {
"type": "array",
"items": { "type": "object" },
"contains": [
{ "required": ["property1"] },
{ "required": ["property2"] }
],
"minContains": 2,
"additionalProperties": false,
"uniqueItems": true
}
},
"required": ["number", "rootProperty"]
}