用jackson反序列化xml多态列表

时间:2014-06-23 02:20:18

标签: java xml jackson

我在xml后反序列化有问题:

<root>
  <apples>
    <apple>
      <id>1</id>
      <weight>0.6</id>
    </apple>
    <apple>
      <id>2</id>
      <weight>0.7</id>
    </apple>
  </apples>
</root>

到java:

public class Root {
  private List<Fruits> fruits;
}

在上面的xml源代码中,其他变体可能是例如oranges / orange等,因为这是属性xml我不能改变它的模式。默认情况下,我使用@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)@JsonSubTypes({/*fruits subtypes listed*/})。经过几次不成功的尝试后,我不确定解决问题的正确映射/配置是什么。

1 个答案:

答案 0 :(得分:0)

开箱即用,JacksonJSON解析器,而不是XML

Jackson的扩展程序允许进行XML转换。有关详细信息,请参阅http://wiki.fasterxml.com/JacksonExtensionXmlDataBinding。但似乎纯粹的XML解析器可能更适合这种情况。

也许javax.xml.stream.*包。

即。 http://www.javacodegeeks.com/2013/05/parsing-xml-using-dom-sax-and-stax-parser-in-java.html了解更多信息。