我有enum
第一组选项,第二个enum
,其内容取决于第一个enum
中的选择。
以下是我目前(不对)的一个简单示例:
"fontGroup": {
"title": "Font Group",
"type": "string",
"enum": [
"Roboto",
"Noto",
"Alegreya"
],
"default": "Roboto"
},
"fontFamily": {
"title": "Font Family",
"type": "string",
"enum": [
"Roboto Slab",
"Roboto Condensed",
"---",
"Noto Sans",
"Noto Serif",
"---",
"Alegreya SC",
"Alegreya Sans"
],
"default": "Roboto Slab"
}
当然,如果从第一个Noto
中选择了enum
,则只有第二个Noto
中的enum
相关选项有效。例如,与Noto
结合使用Roboto Condensed
无效。
如何在架构中指定?
答案 0 :(得分:1)
您不能引用draft-07
及以下版本的相对属性,但您可以枚举所有可能的对象变体:
{
"type": "object",
"oneOf": [
{
"properties": {
"fontGroup": {
"const": "Roboto"
},
"fontFamily": {
"enum": [
"Roboto Slab",
"Roboto Condenced"
]
}
}
},
{
"properties": {
"fontGroup": {
"const": "Noto"
},
"fontFamily": {
"enum": [
"Noto Sans",
"Noto Serif"
]
}
}
},
{
"properties": {
"fontGroup": {
"const": "Alegreya"
},
"fontFamily": {
"enum": [
"Alegreya SC",
"Alegreya Sans"
]
}
}
}
]
}
const
无法使用 draft-04
关键字,您可以将其更改为单值枚举:"enum":["Roboto"]
。