Как в Spring сделать разный строковый десериализатор для разных «ручек»?

Проблема: в запросе прилетают пустые строки (""), а так же состоящие из одних пробелов.
Погуглил, добавил простой десериализатор в конфиг:

@Bean(name = JACKSON_MAPPER_BEAN_NAME)
    public ObjectMapper objectMapper(StatusNameResolver resolver) {
        ObjectMapper objectMapper = new ObjectMapper();
        SimpleModule blankStringModule = new SimpleModule();

        blankStringModule.addDeserializer(
                String.class,
                new StdDeserializer<String>(String.class) {

                    @Override
                    public String deserialize(JsonParser parser, DeserializationContext context)
                            throws IOException {
                        String result = StringDeserializer.instance.deserialize(parser, context);
                        if (StringUtils.isBlank(result)) {
                            return null;
                        }
                        return result;
                    }
                });

        objectMapper.registerModule(blankStringModule);
        return objectMapper;
    }


Проблема вроде ушла, но в других запросах всё сломалось, так как там это решение оказалось неожиданным.

Вопрос: как сделать тоже самое, но для одного конкретного метода REST-контроллера?
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы