首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jackson with jaxb

jackson with jaxb
EN

Stack Overflow用户
提问于 2011-05-14 20:28:19
回答 2查看 11.1K关注 0票数 3

当我在泽西岛使用杰克逊JSON处理器时,我什么时候以及为什么需要在中间使用JAXB注释?Object->JAXB->JSON

杰克逊还为go direct Object->JSON提供了自己的JAX-RS提供商。这种方法缺少什么?或者为什么我更喜欢另一个

ps:我用的也是spring

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-14 22:36:19

要生成JSON,您通常只需指定@Produces(MediaType.APPLICATION_JSON)。但是,这将默认采用JAXB路由。

使用Object -> JAXB -> JSON,您必须用@XmlRootElement注释您想要映射的类。这将很好地工作,但是一旦您开始序列化一个HashMap,您将不会得到一个明显的{keyOne:"one",keyTwo:"two"},而是一个奇怪的东西,比如{entry:[{key:"keyOne",value:"one"},{key:"keyTwo",value:"two"}]}

因此,要采用直接对象-> JSON的方式,只需在web.xml中指定以下内容:

代码语言:javascript
复制
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>

有了这个JSON映射,它将以您期望的方式工作。但不要忘记删除XML,它们会在启用POJO映射时强制生成@XmlRootElement

也可以看看我关于这个的问题:Java.util.Map to JSON Object with Jersey / JAXB / Jackson

参考:http://jersey.java.net/nonav/documentation/latest/json.html#d4e894

票数 10
EN

Stack Overflow用户

发布于 2011-05-15 22:32:23

如果您还希望以XML格式生产/使用数据,则只需要使用JAXB注释。

如果您只关心JSON,那么就不要使用JAXB注释;除了Jackson注释之外,它们没有提供任何东西。事实上,大多数情况下,通过使用Java Bean命名约定,无需任何注释即可处理基本情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6001817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档