需要基于 xml-mapping 将 POJO 转换为 XML 和 JSON 的工具
Posted
技术标签:
【中文标题】需要基于 xml-mapping 将 POJO 转换为 XML 和 JSON 的工具【英文标题】:A tool for transforming POJO to XML and JSON, based on xml-mapping is needed 【发布时间】:2011-07-08 21:56:58 【问题描述】:我需要一个可以将 POJO 转换为 XML 和 JSON 字符串的开源工具。
如果可以通过 xml 文件而不是注释来配置映射,那么 Jersey(可能还有其他 JAX-RS 实现)将符合这些要求。
有什么合适的吗?
【问题讨论】:
【参考方案1】:POJO 转 XML
JAXB 是 Java 标准 (JSR-222),用于将 Java 对象与 XML 相互转换(我是 JAXB 专家组的成员):
http://bdoughan.blogspot.com/2010/07/jaxb-xml-binding-standard.htmlPOJO 转 JSON
人们一直在使用带有 Jettison 的 JAXB 来生成 JSON。这就是Jersey(JAX-RS 参考实现)默认将 POJO 转换为 JSON 的方式。
http://bdoughan.blogspot.com/2011/04/jaxb-and-json-via-jettison.htmlXML 配置
如果您需要通过 XML 配置元数据的能力,那么您可以使用 EclipseLink JAXB (MOXy),我是 MOXy 技术负责人:
http://bdoughan.blogspot.com/2010/12/extending-jaxb-representing-annotations.html【讨论】:
MOXy 在 XML 领域看起来确实是一个非常有前途的候选者——让 JAXB RI 和 XStream 为他们的钱运行。【参考方案2】:有很多合适的 JSON 库;除了提到的 GSON 之外,Jackson 是一个显而易见的选择。通常你不需要任何注释;但即使您需要,Jackson 也可以使用所谓的混合注释,这意味着关联配置,而不是修改实际的 POJO。最后,如果您必须使用 JAXB 注释(例如,在使用 JAXB 生成 XML 时),Jackson 支持它们。
另外,Jackson 扩展模块jackson-xml-databind 可以将 POJO 数据绑定到 XML 和从 XML 绑定数据,因此您只需使用一个库即可。
【讨论】:
【参考方案3】:你试过蓖麻吗?
http://www.castor.org/
支持 XML 映射 -
http://www.castor.org/xml-mapping.html
如果需要 JSON,可以从 XML 中使用 json-lib。
http://answers.oreilly.com/topic/278-how-to-convert-xml-to-json-in-java/
【讨论】:
这个工具好像没有提供POJO转JSON的功能。 这是对的,但 POJO -> XML -> JSON 可以与其他库一起使用。附上答案。【参考方案4】:查看 GSON 以将 POJO 转换为 JSON:
http://code.google.com/p/google-gson/
我们已经使用了几年了。非常棒的图书馆。
对于到 XML 的 POJO,Jersey 使用 JAXB,或者您可以使用自己的序列化程序。
【讨论】:
以上是关于需要基于 xml-mapping 将 POJO 转换为 XML 和 JSON 的工具的主要内容,如果未能解决你的问题,请参考以下文章
构建一个应用程序,用于在基于内存的数据库中存储 POJO(普通旧 Java 对象)
xml-mapping xml 与 java 对象转换映射框架,像 XStream 一样优雅地读写x