需要基于 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.html

POJO 转 JSON

人们一直在使用带有 Jettison 的 JAXB 来生成 JSON。这就是Jersey(JAX-RS 参考实现)默认将 POJO 转换为 JSON 的方式。

http://bdoughan.blogspot.com/2011/04/jaxb-and-json-via-jettison.html

XML 配置

如果您需要通过 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 列表

构建一个应用程序,用于在基于内存的数据库中存储 POJO(普通旧 Java 对象)

xml-mapping xml 与 java 对象转换映射框架,像 XStream 一样优雅地读写x

xml-mapping xml 与 java 对象转换映射框架,像 XStream 一样优雅地读写xml

Java POJO的JSON对象数组

Java8 - 基于POJO更新多个列表。