Jackson XML Mapper为列表编写两次元素名称
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jackson XML Mapper为列表编写两次元素名称相关的知识,希望对你有一定的参考价值。
我有一个类Submission
(如下所示),它有一个名为Return of return类型的列表。当我反对序列化Return
元素两次。返回元素有没有办法只出现一次?
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ReturnType", propOrder = {
"t619",
"_return"
})
@XmlRootElement(name = "Submission")
public class Submission {
@XmlElement(name = "Return", required = true)
protected List<Return> _return;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ReturnChoiceType", propOrder = {
"t4",
"t4A",
...
})
public class Return {
@XmlElement(name = "T4")
protected T4ReturnType t4;
...
}
生成的XML
<Return> <!-- One return -->
<Return> <!-- Another return -->
<T4>
</T4>
</Return>
</Return>
答案
因为,Return
元素包含List
的Return
对象。
@XmlElement(name = "Return", required = true)
protected List<Return> _return;
你需要将List<Return>
改为List<String>
protected List<String> _return;
由于你没有分享Return
类的完整细节,但我假设你可能还需要改变一些东西。
以上是关于Jackson XML Mapper为列表编写两次元素名称的主要内容,如果未能解决你的问题,请参考以下文章
Jackson:为 Map 数据结构注册自定义 XML 序列化程序