Валидаторы Джексона json -схемы в поле ObjectNode - PullRequest
0 голосов
/ 31 марта 2020

Мне нужно несколько валидаторов 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 типа ..

Любой предложения здесь? Спасибо заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...