Мне нужно несколько валидаторов json -схемы в моем поле ObjectNode
в файле Speci c. Но не знаю, как лучше это сделать. Одним из предполагаемых решений является пользовательский десериализатор с помощью аннотации @JsonDeserialize
, но проблема в том, что конвертер / десериализатор создан Джексоном, но мне нужен список параметров json -schema. Я попытался использовать собственную аннотацию JsonValidator
и проверить ее из BeanDeserializerModifier
:
context.addBeanDeserializerModifier(object : BeanDeserializerModifier() {
override fun modifyDeserializer(config: DeserializationConfig, beanDesc: BeanDescription, deserializer: JsonDeserializer<*>): JsonDeserializer<*> {
return if(beanDesc.beanClass == ObjectNode::class.java && beanDesc.classAnnotations.has(JsonValidator::class.java)) {
val annotation = beanDesc.classAnnotations[JsonValidator::class.java]
ValidationDeserializer(validationSchemas, deserializer, annotation)
} else {
deserializer //default deserializer
}
}
})
, но проблема в том, что метод modifyDeserializer
не вызывается для ObjectNode
типа ..
Любой предложения здесь? Спасибо заранее!