Jackson Xml 重复标签名称

bor*_*ode 3 java xml jackson jackson-databind

我使用 jackson xml 生成 xml,用于生成 jackson xml 的我的 POJO 类如下:

public class data { 

    @JacksonXmlProperty(localName="Element") 
    Element element = new Element();  

}
Run Code Online (Sandbox Code Playgroud)
public class Element {
    @JacksonXmlProperty(localName="element1")
    private List<String> element1;
    public List<String> getElement1() {
        return element1;
    }    
    public void setElement1(List<String> element1) {
        this.element1 = element1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我期待这样的输出:

<Element>
  <element1></element1>
  <element1></element1>
  <element1></element1>
</Element>
Run Code Online (Sandbox Code Playgroud)

但我得到:

<Element>
 <element1>
   <element1></element1>
   <element1></element1>
   <element1></element1>
 <element1>
</Element>
Run Code Online (Sandbox Code Playgroud)

怎么解决这个问题?

use*_*900 5

添加JacksonXmlElementWrapper

 @JacksonXmlElementWrapper(useWrapping = false)   
 @JacksonXmlProperty(localName="element1")
    private List<String> element1;
Run Code Online (Sandbox Code Playgroud)

与 JAXB javax.xml.bind.annotation.XmlElementWrapper 类似的注释,指示要用于 Collection 类型(数组、java.util.Collection)的包装器元素(如果有)。如果定义,则使用单独的容器(包装)元素;如果不是,则写入条目时不会换行。