【问题标题】:Java-Jackson Serialize ArrayList<String> to XML with different child namesJava-Jackson 将 ArrayList<String> 序列化为具有不同子名称的 XML
【发布时间】:2020-11-27 00:19:09
【问题描述】:

我一直在使用 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 子元素名称的任何建议?

【问题讨论】:

标签: java xml jackson


【解决方案1】:

在列表字段中同时使用@JacksonXmlElementWrapper@JacksonXmlProperty

这里是一些示例代码:

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

ElementWrapper 用于外部元素 (包含重复元素的那个)。 XmlProperty 用于内部元素 (重复的那个)。

【讨论】:

    【解决方案2】:

    你应该可以使用

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2017-11-29
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      相关资源
      最近更新 更多