JSON 架构 - 有条件的任何一个?

JSON Schema - anyOf within conditional?

我正在尝试定义一个带有条件的 JSON 模式。我构建了一个 MVE,它已经无法正常工作。

我要验证的对象是:

{
  "keiner": false, 
  "abdominal": true,
  "zervikal": false
}

条件规则很简单。当 "keiner" 为真时,其他两个值都必须为假。如果 "keiner" 为假,则其他两个中至少有一个为真。

我写了这个架构:

{
  "type": "object",
  "properties": {
    "keiner": { "type": "boolean" },
    "abdominal": { "type": "boolean" }
  },
  "if": {
    "properties": {
      "keiner": { "const": true }
    }
  },
  "then": {
    "properties" : {
      "abdominal": { "const": false },
      "zervikal": {"const": false }
    }
  },
  "else": {
    "properties": {
      "anyOf": [
        { "abdominal": { "const": true } },
        { "zervikal": { "const" : true } }
      ]
    }
  }
}

但是Newtonsoft在线验证器给出了错误信息

Unexpected token encountered when reading value for 'anyOf'. Expected StartObject, Boolean, got StartArray.

对于“anyOf”开始的行。这让我感到困惑,因为我能找到的所有示例都显示 anyOf 后跟一系列选项。

那我做错了什么?为什么我不能在 anyOf 之后有一个 startArray,我该如何正确编写模式?

我想这就是您要查找的架构: