从 Java 到 XML 的序列化/反序列化的最佳实践
Posted
技术标签:
【中文标题】从 Java 到 XML 的序列化/反序列化的最佳实践【英文标题】:Best Practice for Serialize/Deserialize from Java to XML 【发布时间】:2011-02-23 14:23:28 【问题描述】:将 Java 类序列化为 XML 的最合适方法是什么? 我尝试了 JAXB,但它在接口和泛型方面存在问题。哪种解决方案侵入性最小但可扩展?
【问题讨论】:
【参考方案1】:我一直对 XStream 有积极的体验:
http://x-stream.github.io/tutorial.html#to-xml
如您所见,它使用起来很简单。
我实际上并没有将 XStream 与泛型一起使用(我只将它用于简单的 JavaBean 类型类),但 Google 似乎建议它可以毫无问题地处理它们。例如http://techo-ecco.com/blog/xstream-spring-ws-oxm-and-generics/
【讨论】:
n.b.该博客链接导致谈论使用 Spring 来简化输出的 xml,但第一个 xml sn-p 表明普通的 XStream 很好地处理了 Generic LinkedList 教程本身使用 List我建议克服 JAXB 的接口和泛型问题。
JAXB Marshalling and Generics
java.util.List is an interface, and JAXB can't handle interfaces
【讨论】:
我已经阅读了这些,但发现解决方案不适合,它无法扩展以使用泛型为每个类构建适配器。转换到数组/从数组转换是可以的 - 如果 JAXB 可以透明地进行并且无需我的帮助。以上是关于从 Java 到 XML 的序列化/反序列化的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jackson 从 XML 到 POJO 的反序列化问题:没有从字符串值反序列化的字符串参数构造函数/工厂方法