JSONSchema... Как сделать обязательным поле по условию?

Возникла необходимость изменять обязательность поля и отразить данный факт в JSONSchema. Суть вот в чем, поле (или секция в JSON) становятся обязательными, если другое поле принимает определенное значение. Из интернета я подчерпнул, что для этого используется конструкция if-then, в которой прописывается условие и обязательность поля. Да вот беда, почему-то, когда я эту штутку прописываю, у меня условие выполняется всегда, независимо от условий. То естьЮ, если я пытаюсь отвалилировать файл, он в любом случае начинает указывать не отсуствие данной секции. Возникла необходимость изменять обязательность поля и отразить данный факт в JSONSchema. Суть вот в чем, поле (или секция в JSON) становятся обязательными, если другое поле принимает определенное значение. Из интернета я подчерпнул, что для этого используется конструкция if-then, в которой прописывается условие и обязательность поля. Да вот беда, почему-то, когда я эту штутку прописываю, у меня условие выполняется всегда, независимо от условий. То естьЮ, если я пытаюсь отвалилировать файл, он в любом случае начинает указывать не отсуствие данной секции.

    {
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "properties": {
       "M": {
      "$ref": "#/definitions/M_type"
    },
     "definitions": {
    "A_type": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "r": {
            "type": "string",
                      },
          "c": {
            "type": "string",
            "enum": [
              "U",
              "E"
            ]
          }
        },
        "required": [
          "r",
          "c"
        ]
      }
    },
       "B_type": {
      "type": "object",
            "additionalProperties": false,
      "properties": {
        "s: {
          "$ref": "#/definitions/A_type",
                  }
    },
      "M_type": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "A": {
          "$ref": "#/definitions/A_type",
                  },
        "B": {
          "$ref": "#/definitions/B_type"
          
        },
      },
      "dependencies":{
      "B":{
      "if":{"properties":{"B":{"s":[{"c":{"const":"U"}}]}}},
      "then":{"required":["A"]}}
    }}}}

Как можно догадаться, хочу я, чтобы атрибут "A" становился обязательным, когда атрибут по адресу ```B/income/[0]/c="U"```
Ну вот, всегда он требует наличия секции A.  Был бы благодарен за помощь

Ответы (0 шт):