Я пытаюсь упорядочить список: List
объектов через Spring Rest Template.
Я могу передать простые объекты Pojo
, но я не могу найти никакой документации, описывающей, как отправлять объекты List
.
Spring использует Jackson JSON для реализации HttpMessageConverter
. В документации Джексона это описано:
В дополнение к привязке к POJO и объектов.
Spring использует Jackson JSON для реализации
HttpMessageConverter
. В документации Джексона это описано:В дополнение к привязке к POJO и объектов.
Spring использует Jackson JSON для реализации
HttpMessageConverter
. В документации Джексона это описано:В дополнение к привязке к POJO и "простые" типы, есть один дополнительный вариант: привязка к универсальные (типизированные) контейнеры. Этот случай требует особого обращения из-за так называемое стирание типа (используется Java реализовать дженерики в некоторой обратно совместимый способ), который мешает вам использовать что-то вроде
Коллекция
(что делает не компилируется)..class Итак, если вы хотите привязать данные к
Map
, которые вам нужно будет использовать:
Map
result = mapper.readValue (src, new TypeReference где
TypeReference
требуется только для передать определение универсального типа (через в этом случае любой внутренний класс): важная часть, определяющий тип для привязки.
Можно ли это сделать в шаблоне Spring? Я взглянул на код, и это меня не устраивает, но, возможно, я просто не знаю какой-то уловки.
Решение
Окончательное решение, благодаря полезным ответам ниже, заключалось в том, чтобы не отправлять список, скорее отправьте один объект, который просто расширяет список, например:
class PojoList extends ArrayList
. Spring может успешно маршалировать этот объект, и он выполняет то же самое, что и отправкаList
, хотя это немного менее чистое решение. Весной я также опубликовал JIRA, чтобы они исправили этот недостаток в их интерфейсеHttpMessageConverter
.