Spring / json: преобразование типизированной коллекции, например List

Я пытаюсь упорядочить список: 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 .

32
задан Programmer Bruce 4 June 2011 в 23:03
поделиться