# #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?