杰克逊XML:如何使用具有多个包装器类的JacksonXmlElementWrapper反序列化XML

时间:2018-08-10 19:46:34

标签: java jackson-dataformat-xml

我有一个需要反序列化的XML字符串

<LOC attribute="example">
   <VehAvail>
      <VehAvailCore>
         <Fees>
             <Fee att1="a" att2="b" att3="c"/>
             <Fee att1="x" att2="y" att3="z"/>
         </Fees>
      </VehAvailCore>
    </VehAvail>
</LOC>

这是我正在尝试的方法,但是我没有添加上面两个包装器和

的确切解决方案
@JacksonXmlElementWrapper(localName = "Fees")
@JacksonXmlProperty(localName="Fee")
private List<Fee> fees = new ArrayList();

如何使用JacksonXML Annotation将其反序列化为Java POJO类?

1 个答案:

答案 0 :(得分:2)

只能有一个。

好吧,Highlander之外,在元素列表周围实际上只能有一个包装器。

在您的示例中,您只能定义3个类:LOCVehAvailCoreFee,并在VehAvail周围指定包装器VehAvailCore和包装器Fees附近的Fee

当然,这全部取决于基数(minOccursmaxOccurs)以及VehAvailVehAvailCore和{{1 }}。不了解完整规格,就无法分辨。