在json模式中,如何定义一个带有枚举中每个元素描述的枚举



在json模式中,我可以简单地使用"enum";带有可用代码列表,例如:

{
"type": "object",
"properties": {
"group": {
"type":"string",  
"$ref": "#/definitions/Group"
}
},
"definitions": {
"Group": {
"enum": ["A","B"]
}
}
}

以下有效载荷有效:

{
"group": "B"
}

然而,我试图向用户提供模式中的描述,其中";A〃="组A"B〃="组B";。类似于:

{
"type": "object",
"properties": {
"group": {
"type":"string",  
"$ref": "#/definitions/Group"
}
},
"definitions": {
"Group": {
"enum": [
{"code":"A",
"description": "Group A"
},
{"code":"B",
"description": "Group B"
}
]
}
}
}

但我不想改变有效载荷的结构(不需要"描述"字段(该描述更多地用于文档目的,用户可以参考。有什么好的做法可以在这里使用吗?

谢谢

您可以将anyOfconst一起使用,而不是使用enum。然后您可以使用titledescription进行文档编制。

{
"anyOf": [
{
"const": "A",
"title": "Group A"
},
{
"const": "B",
"title": "Group B"
}
]
}

这取决于您的工具链。例如,jsonschema2md允许使用meta:enum属性进行描述:

{
"type": "object",
"properties": {
"group": {
"type":"string",  
"$ref": "#/definitions/Group"
}
},
"definitions": {
"Group": {
"enum": ["A", "B"],
"meta:enum": {
"A": "Group A",
"B": "Group B"
}
}
}
}

最新更新