Jsonschema来验证至少存在一个列表



我有一个json,像这样:

{
"listA": [
{
"prop1": "mine"
},
{
"prop1": "mine"
}
],
"listB": [
{
"prop1": "mine"
}
],
"propsForAll": {
"property1": "value",
"property2": "value"
}
}

我需要json模式来验证至少一种类型的列表存在{listA, listB, listC}

这是我的json模式的位,我试图创建,但pythonjsonschema只是说"[json的内容]在任何给定的模式下都无效";

....  
"required": [
"propsForAll"
],
"anyOf": [
{
"$ref": "#/properties/listA"
},
{
"$ref": "#/properties/listB"
},
{
"$ref": "#/properties/listC"
}
],
....

如果我删除anyOf部分,验证通过,但它没有检查我需要什么。帮助吗?

$ref在这里不是正确的东西。您想使用required代替。

{
"required": ["propsForAll"],
"anyOf": [
{ "required": ["listA"] },
{ "required": ["listB"] },
{ "required": ["listC"] }
]
}

对于$ref,您说实例必须必须"listA"或";listB"或";listC"而不是必须包含"listA"或";listB"或"listC".

最新更新