我使用模式来验证我的json。 我想检查属性值是否存在。如果存在,则该属性是必需的。
我的模式是:
{
"type": "object",
"additionalProperties": false,
"properties": {
"Person": {
"required": true,
"type": [
"object"
],
"properties": {
"Surname": {
"required": true,
"type": [
"string"
]
},
"Name": {
"required": true,
"type": [
"string"
]
},
"Sex": {
"required": false,
"type": [
"string",
"null"
]
},
"BirthDate": {
"required": true,
"type": [
"string"
]
},
"BirthPlace": {
"required": false,
"type": [
"string",
"null"
]
},
"Keys": {
"required": true,
"type": [
"array",
"null"
],
"items": {
"type": [
"object",
"null"
],
"properties": {
"Type": {
"required": true,
"type": [
"string"
],
"enum": ["TaxCode", "DB"]
},
"Id": {
"required": true,
"type": [
"string"
]
}
}
},
Data:
{
"required": false,
"type": [
"object",
"null"
],
"properties": {
....
}
}
}
密钥是两个。始终需要一种类型(“ TaxCode”),而不总是需要“ DB”。
例如:
...
Key:
{
{ Type:"TaxCode"
..
},
{
Type:"DB"
..
}
}
OR
...
Key:
{
{ Type:"TaxCode"
..
}
}
是有效的杰森。
...
Key:
{
{
Type:"DB"
..
}
}
不是有效的杰森
问题是:"enum": ["TaxCode", "DB"]
我该怎么办? 谢谢!