【发布时间】:2011-10-21 09:09:53
【问题描述】:
我对所有 JAXB/JAX-RS 东西都不熟悉。在工作中,我们使用 Mule ESB 及其 Jersey/Jackson 模块来接受传入的 REST 请求。在客户端,我们使用的是 RestEasy(与 Jackson)...请求应该是 Json,而不是 XML。
它适用于仅包含字符串字段的简单对象。但是一旦我们开始使用更“复杂”的类型,例如 Locales、enums 或 Maps,就会出现问题。
如果我理解正确的话,JAXB 中没有内置的序列化器用于 Map 之类的类型(我什至应该说“HashMap”,因为如果我理解正确,JAXB 不能很好地支持接口)。所以你必须为这些字段提供你自己的序列化器。
根据我在网络上的搜索,我发现 @XmlJavaTypeAdapter 注释可用于管理您自己的“Map”等类型的序列化。但我也看到,在 Jackson 文档中,可以使用 @JsonSerialize(using=MySerializer.class) 注释。
我们应该使用什么,为什么? @XmlJavaTypeAdapter 还是 @JsonSerialize?它们是相同的还是目的不同?
【问题讨论】:
标签: jaxb jax-rs jackson resteasy mule