JSON 架构对象包含值
JSON Schema object contains value
我想检查“obj”是否至少包含一个值“test”。但是“obj”中的键是随机的。
Json:
{
"title": "doc",
"obj": {
"xxxx-random": "test",
"zzzz-random": "wol"
}
}
我的想法是使用 oneOf,但它并没有像我预期的那样工作:
架构Json:
{
"properties": {
"title": {
"type": "string"
},
"obj": {
"type": "object",
"oneOf": [
{
"contains": {
"properties": {
"type": "string",
"desc":"test"
}
}
}
]
}
}
}
您可以通过稍微动脑筋地使用“not”关键字来做到这一点。也就是说,我们可以构建一个断言的模式:
- 属性“obj”必须存在
- "obj"的值为对象,必须至少有一个属性
- “obj”下的所有属性都不匹配“test”是不可能的
{
"type": "object",
"required": ["obj"],
"properties": {
"obj": {
"type": "object",
"minProperties": 1,
"not": {
"additionalProperties": { "not": { "const": "test" } }
}
}
}
}
我想检查“obj”是否至少包含一个值“test”。但是“obj”中的键是随机的。
Json:
{
"title": "doc",
"obj": {
"xxxx-random": "test",
"zzzz-random": "wol"
}
}
我的想法是使用 oneOf,但它并没有像我预期的那样工作:
架构Json:
{
"properties": {
"title": {
"type": "string"
},
"obj": {
"type": "object",
"oneOf": [
{
"contains": {
"properties": {
"type": "string",
"desc":"test"
}
}
}
]
}
}
}
您可以通过稍微动脑筋地使用“not”关键字来做到这一点。也就是说,我们可以构建一个断言的模式:
- 属性“obj”必须存在
- "obj"的值为对象,必须至少有一个属性
- “obj”下的所有属性都不匹配“test”是不可能的
{
"type": "object",
"required": ["obj"],
"properties": {
"obj": {
"type": "object",
"minProperties": 1,
"not": {
"additionalProperties": { "not": { "const": "test" } }
}
}
}
}