Не удалось проверить jsonschema в Go

# #json #go #jsonschema #json-schema-validator

Вопрос:

У меня есть тело запроса, которое должно быть проверено на соответствие определенной схеме.

Будет одно необязательное свойство returnValues , которое является логическим, должно быть проверено, если оно присутствует во params внутренней полезной нагрузке.

Схема:

 {
   "title":"RPCRequest",
   "type":"object",
   "properties":{
      "params":{
         "description":"rpc method parameters",
         "type":"object",
         "additionalProperties":true
      }
   },
   "required":[
      "params"
   ],
   "additionalProperties":false
}
 

Хотя я уже упоминал "additionalProperties": true , я все еще получаю ошибку «Дополнительное свойство недопустимо».

Ошибки проверки параметров RPC: [Возвращаемые значения: Дополнительные возвращаемые значения свойств не допускаются]

Код:

 gojsonschema.Validate(schema, gojsonschema.NewGoLoader(params))


type GetChartRequest struct {
    ID           string
    Name         string
    Deployment   string
    Namespace    string
    Repository   string
    Version      string
    Cluster      string
    InstallOrder *uint64 `json:"installOrder"`
    Provider     string
    ReturnValues bool    `json:"returnValues"`
}
 

Комментарии:

1. Какова ваша соответствующая структура Go, в которую декодируется JSON?

2. добавлено в вопросе

3. Вы можете использовать указатель boo для ReturnValues значений. Тогда значение по умолчанию равно нулю, а затем вы можете проверить его, равно нулю или нет. Если returnValues он присутствует в json, это должно быть не равно нулю, а наоборот, равно нулю

4. Нет, не сработало.

5. Можете ли вы добавить какой-нибудь воспроизводимый пример? Какой-нибудь пример JSON?