繁体   English   中英

如何通过编程方式配置Jersey以将Jackson用于JSON(反序列化)?

[英]How do I programmatically configure Jersey to use Jackson for JSON (de)serialization?

我将Jersey和Grizzly一起使用来创建JSON Web服务。 我将其初始化如下:

    final ResourceConfig rc = new PackagesResourceConfig("amplify.api.resources");
    rc.getProperties().put(JSONConfiguration.FEATURE_POJO_MAPPING, true);
    return GrizzlyServerFactory.createHttpServer(BASE_URI, rc);

我没有web.xml文件。 我注意到,Jersey正在将单个元素列表映射为“元素”,而不是我所期望的“ [元素]”。 似乎这显然是因为Jersey使用的是Jackson以外的POJO-> JSON映射器,并且出于我无法理解的原因,他们认为自动拆开单元素列表是个好主意。

我通过配置web.xml文件找到了有关如何使Jersey使用杰克逊的解释,但是由于我没有web.xml,因此我不确定如何执行此操作。

谁能解释我如何以编程方式配置Jersey以使用Jackson?

如何使用Grizzly2在Jersey中以编程方式启用POJO映射得到了响应

想法是将jersey-json库添加到您的应用程序。

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>${jersey.version}</version>
</dependency>

看一下Jackson jax-rs模块中的JacksonJsonProvider

您需要将它(或子类,例如JacksonJaxbJsonProviderJacksonJaxbJsonProvider在泽西岛可识别的IoC容器(默认情况下为自己,但我个人更喜欢Guice),否则,请将其注册为@Provider

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM