Java -Jackson Serialize ArrayList от <String>до XML с разными дочерними именами - PullRequest
0 голосов
/ 06 августа 2020

Я использовал jackson-dataformatter-v2.9.10 для сериализации класса Java в строку XML.

Это мой класс:

public class parent()
{
    public ArrayList<String> children;

    public parent() {
       
         children = new ArrayList<String>();
    }
}

Здесь вот чего я хочу достичь:

<parent>
    <children>
      <child>John</child>
      <child>Ben</child>
      <child>Mary</child>
    </children>
</parent>

Вот что я получаю:

<parent>
    <children>
      <children>John</children>
      <children>Ben</children>
      <children>Mary</children>
    </children>
</parent>

Любые предложения по изменению имен дочерних элементов ArrayList ?

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Используйте как @JacksonXmlElementWrapper, так и @JacksonXmlProperty в поле списка.

Вот пример кода:

    @JacksonXmlElementWrapper(localName = "children")
    @JacksonXmlProperty(localName = "child")
    private List<String> child = new LinkedList<>();

ElementWrapper предназначен для внешнего элемента (того, который содержит повторяющиеся элементы). XmlProperty предназначен для внутреннего элемента (того, который повторяется).

0 голосов
/ 06 августа 2020

Вы должны иметь возможность использовать

@JacksonXmlElementWrapper(localName = "children")
List<String> child;

https://stackify.com/java-xml-jackson

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