使用Jackson XML映射器将Java List序列化为XML [英] Serialize Java List to XML using Jackson XML mapper
本文介绍了使用Jackson XML映射器将Java List序列化为XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好我需要使用Jackson-dataformat XMLMapper从JAVA创建XML。
XML应该像
Hi I need to create an XML from JAVA using Jackson-dataformat XMLMapper. The XML should be like
<Customer>
<id>1</id>
<name>Mighty Pulpo</name>
<addresses>
<city>austin</city>
<state>TX</state>
</addresses>
<addresses>
<city>Hong Kong</city>
<state>Hong Kong</state>
</addresses>
</Customer>
但我总是喜欢额外的< addresses>< / addresses>标签。
But I get it always like with an extra "< addresses> < /addresses>" tag.
<Customer>
<id>1</id>
<name>Mighty Pulpo</name>
<addresses>
<addresses>
<city>austin</city>
<state>TX</state>
</addresses>
<addresses>
<city>Hong Kong</city>
<state>Hong Kong</state>
</addresses>
<addresses>
</Customer>
我使用下面的代码创建XML
I am using below code to create XML
JaxbAnnotationModule jaxbAnnotationModule = new JaxbAnnotationModule();
XmlMapper mapper = new XmlMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.registerModule(jaxbAnnotationModule);
mapper.registerModule(new GuavaModule());
String xml = mapper.writeValueAsString(customer);
System.out.println(xml);
请帮助我一些人吗?如何删除额外的标签呢。我曾尝试使用@XmlElement,但它没有帮助。 TIA !!
Please can some one help me? How can I remove the extra tag please. I have tried to use @XmlElement but it does not help help. TIA!!
推荐答案
尝试以下代码
@JacksonXmlRootElement(localName = "customer")
class Customer {
@JacksonXmlProperty(localName = "id")
private int id;
@JacksonXmlProperty(localName = "name")
private String name;
@JacksonXmlProperty(localName = "addresses")
@JacksonXmlElementWrapper(useWrapping = false)
private Address[] address;
//getters, setters, toString
}
class Address {
@JacksonXmlProperty(localName = "city")
private String city;
@JacksonXmlProperty(localName = "state")
private String state;
// getter/setter
}
这篇关于使用Jackson XML映射器将Java List序列化为XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文