一个属性的json模式依赖于另一个属性的值

时间:2018-04-30 21:48:21

标签: jsonschema

我想要列出的两个属性是os_type和os_version。

os_type将是一个包含多个值的枚举,如windows,linux等。

基于os_type,os_version值将是不同的枚举值。

对于windows,os_version将是7,8,10

对于linux,os_version将是ubuntu,fedora等

如何使用json模式执行此操作,其中os_version依赖于os_type,并且基于os_type显示os_version的不同枚举值?

这是我目前的代码段,不太合适。

{
    "namespace": "MetadataOSVersion",
    "display_name": "Company Metadata: OS Version",
    "description": "Company Metadata: OS Version",
    "visibility": "public",
    "protected": true,
    "objects": [
        {
            "name": "os_type",
            "description": "os_type",
            "properties": {
                "os_type":
                {
                    "title": "os_type",
                    "description": "os_type",
                    "type": "string",
                    "enum": ["Linux", "Windows"]
                },
                "os_version":
                {
                    "title": "os_version",
                    "description": "os_version",
                    "type": "string",
                    "required": ["os_type"],
                    "oneOf": [
                        {{"os_type": {"enum": ["Windows"], "enum": ["7", "8", "10"]}}},
                        {{"os_type": {"enum": ["Linux"], "enum": ["Ubuntu", "Fedora"]}}}
                    ]
                }
            }
       }
        ]

}

0 个答案:

没有答案