Как просто конвертировать переменную ArrayList в XML, используя Джексона и определяя корневой элемент самостоятельно - PullRequest
1 голос
/ 06 мая 2019

Я использовал Джексона для преобразования Object в XML, но теперь требуется преобразовать только переменную ArrayList из объекта в XML. Когда я оборачиваю ArrayList в Object и затем конвертирую Object, он работает нормально, но когда я хочу просто преобразовать список в XML. Я не могу получить нужный корневой элемент и имена элементов в XML.

ObjectMapper objectMapper = new XmlMapper();
JacksonXmlModule xmlModule = new JacksonXmlModule();
xmlModule.setDefaultUseWrapper(false);
ObjectMapper objectMapper = new XmlMapper(xmlModule);
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
String xml = objectMapper.writeValueAsString(input);

Переменная, которую я пытаюсь преобразовать:

@JacksonXmlElementWrapper(localName = "user")
List<USER> userList = new ArrayList<>();

Формат вывода, который я сейчас получаю

<ArrayList>
 <item></item>
 <item></item>
 <item></item>
</ArrayList>

Желаемый O / P

<ArrayList>
     <user></user>
     <user></user>
     <user></user>
</ArrayList>

1 Ответ

0 голосов
/ 06 мая 2019

Для повторного отображения элементов используйте @JacksonXmlProperty, а затем для переноса всего списка используйте @JacksonXmlElementWrapper.

Отображение элементов списка с помощью @JacksonXmlProperty:

@JacksonXmlProperty(localName = "user")
List<String> userList = new ArrayList<>();

Будет производиться:

...
<user>...</user>
<user>...</user>
<user>...</user>
...

Перенос списка через @JacksonXmlElementWrapper:

@JacksonXmlProperty(localName = "user")
@JacksonXmlElementWrapper(localName = "ArrayList")
List<String> userList = new ArrayList<>();

Будет выдано:

...
<ArrayList>
  <user>...</user>
  <user>...</user>
  <user>...</user>
</ArrayList>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...