@galliard

Как в Jackson десериализовать интерфейс Enum?

Собственно есть два енума, которым я прилепил общий интерфейс, этот интерфейс указан в дто, которая сериализуется джексоном и отправляется клиенту. Потом её нужно десериализовать обратно в дто, но тут возникает проблема: джексон не знает, какой из 2х енумов нужно туда подставить.

Собственно какие есть варианты?
Первое, что приходит на ум - запихнуть все в один енум, добавив префиксы к значениям самого енума. Но они как-бы разные, потом в разных свитчах юзаются. Да и топорно как-то.

Второй, как мне кажется, можно добавлять какой-нибудь префикс к уже сериализованному значению и использовать этот префикс при десереализации, чтоб понять, какой конкретно нужен енум. Вот такое можно будет как-то реализовать?

Третьего варианта я не придумал, но может есть еще варианты? Было бы интересно узнать. Или лучше не трахать себе мозг и пойти по первому пути?
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Используйте кастомный десериализатор.
Вот тут можно почитать о нем: https://www.baeldung.com/jackson-deserialization
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
18 мая 2024, в 22:58
3000 руб./за проект
18 мая 2024, в 21:07
5000 руб./за проект
18 мая 2024, в 20:58
5000 руб./за проект