在Jersey 2中禁用JSON中的自动字符串编号

时间:2017-04-18 15:01:57

标签: json rest java-ee jax-rs jersey-2.0

我正在将Jersey 1.x升级到2.x.我在这样的资源类中有一个方法:

while (!kbhit())
    printf("Howdyy you haven't pressed a key.\n");

在Jersey 1中,当调用API时它返回

  

“1”

正如所料。但是在Jersey 2中,它似乎会自动将字符串转换为数字,并在调用API时返回

  

1

我怎样才能恢复泽西岛1的行为?我希望ID保持字符串,而不是数字。

如果有帮助,在迁移到泽西岛2时,我只需更改

@GET @Path("/getId")
@Produces({ MediaType.APPLICATION_JSON })
public String getId() {
    return "1";
}

<servlet>
    <servlet-name>Jersey</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>

我也尝试添加

<servlet>
    <servlet-name>Jersey</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
</servlet>

<init-param>
    <param-name>jersey.config.server.provider.classnames</param-name>
    <param-value>org.glassfish.jersey.moxy.json.MoxyFeature</param-value>
</init-param>

但没有区别。

0 个答案:

没有答案