У меня есть сценарий использования, в котором я хочу проверить наличие ключей в 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 об этом?