3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
||||||
1 | ||||||
Jackson and Enums30.12.2016, 15:36. Показов 1124. Ответов 10
Метки нет (Все метки)
Есть несколько Enumов типа такого
Надо эту поджу отдавать/получать в rest-контроллер. Каким образом объяснить Jacksonу, что он должен делать с этими енумами?
0
|
30.12.2016, 15:36 | |
Ответы с готовыми решениями:
10
Spring feign jackson timezone Считывание нескольких объектов из jackson Spring Jackson. force date format Java Json Jackson десериализация дженерики |
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
|
|
30.12.2016, 19:49 | 2 |
0
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
30.12.2016, 23:33 [ТС] | 3 |
пусть он ожидает, например, число, там где должен быть enum
Добавлено через 7 минут А вообще не важно. Будем считать, что нужно объект преобразовать в json, а потом из полученного jsonа создать новый объект.
0
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
|
|
31.12.2016, 12:56 | 4 |
xoraxax, э-м... Если не важно, то в чём проблема? Jackson by-default сериализует/десериализует enum'ы в/из JSON через Enum.name() (или, возможно, через Enum.toString(), но это вряд ли, т.к. toString можно переопределить и получить строку, не преобразуемую обратно в enum стандартным способом) и Enum.valueOf(String), т.е. ничего ему специально говорить не надо, если тебя это устраивает.
0
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
31.12.2016, 13:56 [ТС] | 5 |
в том то и проблема что не десериализует
Добавлено через 2 минуты т.е. можно, например, внутри енума создать мапку со всеми значениями, написать метод, который из мапки достает по имени нужный объект, и сказать jacksonу, что объекты надо создавать с помощью этого метода. Но как-то это слишком громоздко.
0
|
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
31.12.2016, 14:22 | 6 |
код покажите. Никаких проблем с сериализацией enum не должно быть в дефолтных настройках.
0
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
||||||||||||||||
31.12.2016, 16:53 [ТС] | 7 | |||||||||||||||
Хз чем поможет код показать, вроде просто все.
Вот это в рест-контроллере
0
|
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
31.12.2016, 18:40 | 8 |
xoraxax, какое исключение? Аннотация Data это Lombok? Напишите обычный мейн с сериализация чтобы точнее определить где проблема.
0
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
31.12.2016, 21:06 [ТС] | 9 |
Хм, странно, без спринга в самом деле работает.
0
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
|
|
31.12.2016, 21:30 | 10 |
Может, в спринге используется какая-то другая (может, старая) версия jackson, которая не умеет нормально enum'ы или работает с ними по-другому.
Хотелось бы всё-таки увидеть стэктрейс.
0
|
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
31.12.2016, 21:47 | 11 |
либо спринг использует другой сериалайзер, либо как сказал korvin_, у вас конфликт версий и откуда-то приходит старая версия
0
|
31.12.2016, 21:47 | |
31.12.2016, 21:47 | |
Помогаю со студенческими работами здесь
11
Json (Jackson) значение вместо объекта Jackson Parser не работает как надо Использование "сложных" слов в enums Java Json jackson разбить на части и засунуть в массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |