Jackson处理器用于java bean到json \ xml的序列化

时间:2011-10-21 12:42:21

标签: java jackson

您好我有一个java bean,我需要将它序列化为json。为此我使用的是非常强大的杰克逊处理器。但我还需要将java bean转换为XML。 这可以用杰克逊处理器实现吗?如果是,那么请提供我可以获得示例的链接。 感谢!!!!

3 个答案:

答案 0 :(得分:2)

如果你想让杰克逊和JSON远离你的pojos,你可以创建一个可以转换为JAXB对象并使用纯JAXB的转换层(在这种情况下JAXB是一种可能的实现)。如果您的域对象直接映射到呈现的JSON,或者您可以使用mixins / PropertyNamingStrategy,则您的pojos中不需要注释。我不确定这是否适用于您的情况,但我知道许多环境都在努力争取。

答案 1 :(得分:1)

当然!杰克逊显然拥有对JSON的一流支持;但是还有一个简单的扩展模块来做“mini-JAXB”:jackson-xml-databind。 有了Jackson对JAXB注释的支持(或者,如果你只是喜欢Jackson自己的注释和xml模块的其他几个注释),那么使用Jackson功能肯定可以同时使用JSON和XML。

我主要建议将这种情况用于XML支持是遗留事物(这是大多数新服务所做的事情)。如果XML是主要关注点,那么使用JAXB可能更有意义。 但即便如此,我建议不要使用从XML到JSON的转换层;我所看到的那些在数据格式层进行转换时遇到了问题,IMO是完全错误的做法。这也是杰克逊不尝试将JSON转换为XML(反之亦然)的原因;相反,它只支持将POJO转换为外部数据格式/从外部数据格式转换。

答案 2 :(得分:0)

是的,这是可能的。您需要使用JAXB注释来注释Java bean,这将为您提供XML编组和解组支持。然后,使用Jackson's support进行JAXB注释,您可以在Java和JSON之间来回传递。