JSON 架构 - 如何指定所需属性的排列

JSON schema - how to specify permutations of required properties

以下是我的 JSON 架构的摘录。

我想指定 algorithmresults 都是必需的。

另外我想说明:

这可能吗?

        "algorithm": {
            "description": "description...",
            "type": "string",
            "enum": [
                "",
                "algorithm1",
                "algorithm2"
            ]
        },
        "results": {
            "description": "description...",
            "type": "string",
            "enum": [
                "",
                "results1",
                "results2",
                "results3",
                "results4"
            ]
        },
     "required": ["algorithm", "results"]

感谢上面来自@jruizaranguren 的参考,我能够弄明白。

"required": ["results"],
"results": {
    "type": "object",
    "oneOf": [
        { "$ref": "#/definitions/Results1" },
        { "$ref": "#/definitions/Results2" }
    ]
},
"definitions": {
    "Results1": {
        "type": "object",
        "required": ["algorithm", "results"],
        "properties": {
            "algorithm": {
                "type": "string",
                "enum": [ "algorithm1" ]
            },
            "results": {
                "type": "string",
                "allOf": [
                    { "result": "results1" },
                    { "result": "results2" },
                    { "result": "results3" }
                ]
            }
        }
    },
    "Results2": {
        "type": "object",
        "required": ["algorithm", "results"],
        "properties": {
            "algorithm": {
                "type": "string",
                "enum": [ "algorithm2" ]
            },
            "results": {
                "type": "string",
                "allOf": [
                    { "result": "results2" },
                    { "result": "results3" },
                    { "result": "results4" }
                ]
            }
        }
    }