|
|
|
Spring Jackson - как передать параметр в кастомный сериализатор
|
|||
|---|---|---|---|
|
#18+
Есть сервис, обрабатывающий REST запросы. Результатом запроса должен быть JSON. В объектах, которые надо сереализовать в JSON есть поле - ну пусть "идентификатор типа". В результирующем JSON-е этот идентификатор должен раскрыться в два поля ID и NAME. Н унапример так Код: plaintext Для этого я делаю кастомный сериализатор для этого поля. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. И связываю его с полем аннотацией Код: java 1. 2. 3. 4. 5. 6. 7. 8. Проблема в том, что в REST запросе в одном из параметров задается язык, на котором должно быть заполнено поле "name" Как мне передать идентификатор языка в кастомный сериализатор? Тем более, что сериализацию я явно не запускаю, а Spring сам по заголовку Accept RESTзапроса понимает что нужно конвертнуть ответ в JSON. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 00:54 |
|
||
|
Spring Jackson - как передать параметр в кастомный сериализатор
|
|||
|---|---|---|---|
|
#18+
Maxifly, А может тогда обойтись без кастомного сериализатора?! Т.е. просто создать модель данных, точь в точь, как нужно отдавать в JSON'е. Ну и сделать "преобразователь" от вашей модели данных в модель данных для JSON, там то все и учитывать, включая локализацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 05:17 |
|
||
|
Spring Jackson - как передать параметр в кастомный сериализатор
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Да я и сам начал к этому склоняться уже. Так явно будет проще, чем с сериализаторами мутить. Но все равно интересно - должна же быть возможность контекст в сериализатор просунуть. Я уж подумал сделать у рутового класса атрибут с языком. Потом объявить кастомный сериализатор у рутового класса и там добраться до serializerProvider.getConfig().getAttributes() и в эти атрибуты воткнть свой ключ который взять из атрибута рутового класса. А потом уж сериализовать дочерние объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:57 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=44&tid=2121973]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 276ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...