JSON 架构 - 如何引用枚举值并将多组枚举合并为一个 属性?
JSON Schema - how to reference enum value and combine multiple sets of enums to one property?
我在架构中有两个枚举字段:
{ ...
"prop1": {
oneOf": [{
"enum": [
"VAL1",
"VAL2"],
"type": "string"
},{
"type": "null"}]
},
"prop2": {
oneOf": [{
"enum": [
"VAL3",
"VAL4"],
"type": "string"
},{
"type": "null"}]
}
我想创建第三个枚举字段 prop3
,并允许来自 prop1
和 prop2
的值。
我可以复制值:
{ ...
"prop3": {
oneOf": [{
"enum": [
"VAL1",
"VAL2"
"VAL3",
"VAL4"
],
"type": "string"
},{
"type": "null"}]
}
}
但我希望 prop3
在将它们添加到 prop1
或 prop2
时自动获取新值。
我可以为枚举值创建一个 definition
然后在两个地方使用它吗?
我怎样才能像那样连接两组枚举?
您可以使用 anyOf
关键字来有效地组合枚举。
{
"type": "object",
"properties": {
"prop1": { "$ref": "#/definitions/prop1" },
"prop2": { "$ref": "#/definitions/prop2" },
"prop3": { "$ref": "#/definitions/prop3" }
},
"definitions": {
"prop1": { "enum": ["VAL1", "VAL2"] },
"prop2": { "enum": ["VAL3", "VAL4"] },
"prop3": {
"anyOf": [
{ "$ref": "#/definitions/prop1" },
{ "$ref": "#/definitions/prop2" }
]
}
}
}
我在架构中有两个枚举字段:
{ ...
"prop1": {
oneOf": [{
"enum": [
"VAL1",
"VAL2"],
"type": "string"
},{
"type": "null"}]
},
"prop2": {
oneOf": [{
"enum": [
"VAL3",
"VAL4"],
"type": "string"
},{
"type": "null"}]
}
我想创建第三个枚举字段 prop3
,并允许来自 prop1
和 prop2
的值。
我可以复制值:
{ ...
"prop3": {
oneOf": [{
"enum": [
"VAL1",
"VAL2"
"VAL3",
"VAL4"
],
"type": "string"
},{
"type": "null"}]
}
}
但我希望 prop3
在将它们添加到 prop1
或 prop2
时自动获取新值。
我可以为枚举值创建一个 definition
然后在两个地方使用它吗?
我怎样才能像那样连接两组枚举?
您可以使用 anyOf
关键字来有效地组合枚举。
{
"type": "object",
"properties": {
"prop1": { "$ref": "#/definitions/prop1" },
"prop2": { "$ref": "#/definitions/prop2" },
"prop3": { "$ref": "#/definitions/prop3" }
},
"definitions": {
"prop1": { "enum": ["VAL1", "VAL2"] },
"prop2": { "enum": ["VAL3", "VAL4"] },
"prop3": {
"anyOf": [
{ "$ref": "#/definitions/prop1" },
{ "$ref": "#/definitions/prop2" }
]
}
}
}