我有以下Jersey资源,Jersey已配置为使用Jackson进行自动JSON-POJO转换:
@Path("/test")
public class TestResource {
@POST
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public TestResponse testGet(final TestRequest req) {
final TestResponse response = new TestResponse();
response.x = req.x + 1;
return response;
}
@XmlRootElement
public static class TestRequest {
public int x;
}
@XmlRootElement
public static class TestResponse {
public int x;
}
}
我称之为:
{"x":5}
得到答复:
{"x":"6"}
但是当TestResponse中的x字段是int时,为什么这里的值是一个字符串?
答案 0 :(得分:0)
正如前面的例子中所提到的,配置Jersey绝对可以为您提供所期望的行为。然而,实际上看起来泽西岛使用的是默认的MAPPING符号而根本没有使用Jackson。我会回顾一下如何将Jackson配置到您的Web应用程序中。我配置Jackson的最简单方法是创建以下两个文件......
这两个文件只包含以下文字......
org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider
Here is a link explaining the two ways to configure Jackson to work with JAX-RS annotations
答案 1 :(得分:-1)