Как сериализовать список с Джексоном без названия списка? - PullRequest
0 голосов
/ 02 ноября 2018

Я использую этот код:

XmlMapper objectMapper = new XmlMapper();
    objectMapper.configure( ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true );
    objectMapper.enable(SerializationFeature.INDENT_OUTPUT);

    String xml = objectMapper.writeValueAsString(report);

Для сериализации этого класса:

class Report {

   List<Item> items;
}

Список предметов находится в элементе "items":

<Report>
<items>
<item>
</item>
<item>
...

Я бы хотел сериализовать без элемента "items":

<Report>
<item>
</item>
<item>
...

Любые предложения, как я могу сделать это с Джексоном?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Это всего лишь небольшое изменение в ответе @Andreas.

@JacksonXmlElementWrapper(localName = "ignoredName", useWrapping = false)
@JacksonXmlProperty(localName = "item")
private List<Item> itemList;

Используйте аннотацию @JacksonXmlElementWrapper, чтобы определить, что это список вещей. и вам не нужен элемент-обертка. Используйте аннотацию @JacksonXmlProperty для определения имени элемента.

Это приведет к повторению <item> элементов xml в вашем выводе; по одному на запись в переменной itemList.

0 голосов
/ 02 ноября 2018

Добавьте аннотацию @JacksonXmlElementWrapper, указав, что вам не нужна оболочка:

@JacksonXmlElementWrapper(useWrapping = false)
List<Item> items;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...