json 如何轻松使用 Jackson for Jersey

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12883287/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-03 18:35:44  来源:igfitidea点击:

How to easily use Hymanson for Jersey

jsonjakarta-eejerseyHymanson

提问by daskai0815

I want to use Jersey for implemnting some Java REST services. The default POJO converter JAXB handles JSON objects a bit strange, so I want to use Hymanson for converting POJOs with little or less overhead. How would do I tell the J2ME framework to use another converter?

我想使用 Jersey 来实现一些 Java REST 服务。默认的 POJO 转换器 JAXB 处理 JSON 对象有点奇怪,所以我想使用 Hymanson 以很少或更少的开销来转换 POJO。我如何告诉 J2ME 框架使用另一个转换器?

My web.xml looks like this:

我的 web.xml 看起来像这样:

<!-- Jersey JAVA REST implementation -->
<servlet>
<servlet-name>Jersey</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>org.foobar.rest.services</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

回答by mschmoock

simply add the Hymanson JARs and modify the web.xml like this:

只需添加 Hymanson JAR 并像这样修改 web.xml:

<!-- Jersey JAVA REST implementation -->
<servlet>
<servlet-name>Jersey</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>org.foobar.rest.services;org.codehaus.Hymanson.jaxrs</param-value>    <!--  use Hymanson for JSON -->
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

The required Hymanson JARs ( http://Hymanson.codehaus.org/) are:

所需的 Hymanson JAR ( http://Hymanson.codehaus.org/) 是:

Hymanson-core-asl-1.9.10.jar
Hymanson-core-lgpl-1.9.10.jar
Hymanson-jaxrs-1.9.10.jar
Hymanson-mapper-asl-1.9.10.jar
Hymanson-mapper-lgpl-1.9.10.jar
Hymanson-mrbean-1.9.10.jar
Hymanson-smile-1.9.10.jar
Hymanson-xc-1.9.10.jar

回答by StaxMan

In addition to registering Hymanson 1.x provider, you can alternatively use Hymanson 2.x JSON provider (with Hymanson 2.x databind and core module it depends on): https://github.com/FasterXML/Hymanson-jaxrs-json-providerIt auto-registers itself with service provider interface (1.x did not since it was feared users might be surprised by this, since it's based on existence of a jar in classpath instead of explicit choice).

除了注册 Hymanson 1.x provider,您还可以使用 Hymanson 2.x JSON provider(使用 Hymanson 2.x 数据绑定和它依赖的核心模块):https: //github.com/FasterXML/Hymanson-jaxrs-json -provider它自动向服务提供者接口注册自己(1.x 没有,因为它担心用户可能会对此感到惊讶,因为它基于类路径中存在的 jar 而不是显式选择)。

EDIT (Sep 2013): As pointed out by @koppor, this module is being deprecated, and replacement ones (JSON, XML, Smile) can be found from https://github.com/FasterXML/Hymanson-jaxrs-providers(thanks!)

编辑(2013 年 9 月):正如@koppor 所指出的,该模块已被弃用,可以从https://github.com/FasterXML/Hymanson-jaxrs-providers找到替换模块(JSON、XML、Smile)(感谢!)