Есть ли способ вызвать ошибку, в которой упоминается имя дополнительного ключа, присутствующего в JSON, если я использую условие if-else схемы JSON? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть сценарий использования, в котором я хочу проверить наличие ключей в JSON, в зависимости от значения другого ключа.

Пример JSON -1:

{ 
  "key_name" : "value1",
  "foo" : "random_value1"
}

Пример JSON -2:

{ 
  "key_name" : "value2",
  "bar" : "random_value2"
}

Здесь есть 2 правила:

Правило 1. Если значением «key_name» является «value1», то только ключ «foo» должен присутствовать в JSON.

Правило 2. Если значение "имя_ключа" равно "значение2", то в JSON должен присутствовать только ключ "bar".

Сейчас , согласно правилам, следующие JSON недопустимы и должны вызвать ошибку.

{ 
  "key_name" : "value1",
  "foo" : "random_value1",
  "bar" : "random_value2"
}

ИЛИ

{ 
  "key_name" : "value2",
  "bar" : "random_value2",
  "foo" : "random_value"
}

Я написал схему JSON для проверяя эти JSON согласно этому вопросу .

Но если я использую это, я получаю следующую ошибку:

JSON недопустимо в любой из указанных схем.

Хотя это и решает задачу, эта ошибка не совсем объяснима, почему JSON недопустима. Я ожидаю некоторую ошибку, такую ​​как:

"Дополнительные свойства не разрешены (неожиданно 'bar')"

Это ошибка по умолчанию, когда присутствует какой-либо дополнительный ключ

Как go об этом?

...