我正在使用以下代码:
XmlMapper objectMapper = new XmlMapper();
objectMapper.configure( ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true );
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
String xml = objectMapper.writeValueAsString(report);
要序列化此类:
class Report {
List<Item> items;
}
项目列表位于名为“ items”的元素中:
<Report>
<items>
<item>
</item>
<item>
...
我希望它在没有“ items”元素的情况下进行序列化:
<Report>
<item>
</item>
<item>
...
有什么建议可以和杰克逊一起做吗?
答案 0 :(得分:1)
这只是@Andreas答案的细微变化。
@JacksonXmlElementWrapper(localName = "ignoredName", useWrapping = false)
@JacksonXmlProperty(localName = "item")
private List<Item> itemList;
使用@JacksonXmlElementWrapper
批注来标识它是东西列表
而且您不需要包装元素。
使用@JacksonXmlProperty
批注来标识元素名称。
这将导致输出中重复<item>
个xml元素; itemList
变量中的每个条目一个。
答案 1 :(得分:0)
添加@JacksonXmlElementWrapper
批注,指定您不希望使用包装器:
@JacksonXmlElementWrapper(useWrapping = false)
List<Item> items;