Json Условная проверка схемы не работает в c# - PullRequest
0 голосов
/ 31 марта 2020

У меня есть схема с подусловиями, когда я проверяю схему на предмет любого недействительного файла json в онлайн-инструменте, он выдает ошибку, но когда я использую метод bool valid = clientJsonObject.IsValid(schema, out test); в своем проекте, он не выдает никакой ошибки и говорит, что есть ошибок нет. Может кто-нибудь объяснить, почему это происходит.

пример json схемы -

Это всего лишь часть схемы Json, где есть условия, если / иначе я использую c# для моего проекта и библиотеки Newtonsoft isValid.

                {
                  "if": {
                    "properties": { "Diag": { "enum": [ 99 ] } }
                  },
                  "then": {
                    "properties": { "OtherDiag": { "type": "string" } },
                    "required": [ "Diag2" ]
                  },
                  "else": {
                    "properties": { "Diag3": { "type": "null" } }
                  }
                },
                {
                  "if": {
                    "properties": { "Sec": { "pattern": "^(?!.*\\b(\\d+)\\b.*\\b\\1\\b)((^0$)|1|2|3|4|5|20|31|32)(;(0|1|2|3|4|5|20|31|32))*$" } }
                  },
                  "then": {
                     "properties": { "Other2": { "type": "null" } }

                  },
                  "else": {
                    "properties": { "OtherDiag": { "type": "string" } },
                    "required": [ "OtherDiag" ]
                  }
                }

...