高级json模式每个属性有多个规则
我想知道你是否可以为一个属性设置多个规则。所有的例子似乎都表明你不能 所以我想要一些类似于:高级json模式每个属性有多个规则,json,node.js,jsonschema,Json,Node.js,Jsonschema,我想知道你是否可以为一个属性设置多个规则。所有的例子似乎都表明你不能 所以我想要一些类似于: "properties": { "track": { "type": "string", "pattern": "(exclusive)" }, "track": { "type": "string", "pattern": "(featuring)" } } 我知道在这个例子中要做的最明显的事情是让模式具有(独占)|(特色),但我想我想知道哪个规则失败了。同样
"properties": {
"track": {
"type": "string",
"pattern": "(exclusive)"
},
"track": {
"type": "string",
"pattern": "(featuring)"
}
}
我知道在这个例子中要做的最明显的事情是让模式具有
(独占)|(特色)
,但我想我想知道哪个规则失败了。同样,我以后可能需要更复杂的模式,这些模式可能无法通过
解决。您可以将模式与allOf
、anyOf
和oneOf
关键字组合。这些关键字中的每一个都接受一组模式,并执行它所说的操作<如果所有架构都有效,则code>allOf有效<如果任何架构有效,则代码>任意都有效<如果恰好有一个架构有效,则code>oneOf有效
这里有一种解决问题的方法
{
"type": "object",
"properties": {
"track": {
"anyOf": [
{
"type": "string",
"pattern": "(exclusive)"
},
{
"type": "string",
"pattern": "(featuring)"
}
]
}
}
}
您可以将模式与
allOf
、anyOf
和oneOf
关键字组合。这些关键字中的每一个都接受一组模式,并执行它所说的操作<如果所有架构都有效,则code>allOf有效<如果任何架构有效,则代码>任意都有效<如果恰好有一个架构有效,则code>oneOf有效
这里有一种解决问题的方法
{
"type": "object",
"properties": {
"track": {
"anyOf": [
{
"type": "string",
"pattern": "(exclusive)"
},
{
"type": "string",
"pattern": "(featuring)"
}
]
}
}
}
Oha,不错的一个,可能比我的字典解决方案列表(取决于上下文)更方便。Oha,不错的一个,可能比我的字典解决方案列表(取决于上下文)更方便。