2

我想将一个带有额外整数的对象传输到我的 Jersey-Service。

我的服务方法如下所示:

@POST
@Path("/test")
@Consumes("application/json")
public void test(Person pers, int number)

体内的Json看起来像这样:

{
"name":"TEST",
"surname":"TEST",
"number":"1000"
}

它可以在没有额外整数的情况下工作。

所以我认为它一定是错误的 JSON 消息?

顺便说一句:数字与对象无关,因此我无法将此 var 集成到 person 类中。

请问有人可以帮我吗?

此致

4

1 回答 1

0

它不会像问题中出现的那样工作,因为 Jersey 不会序列化原始类型。检查以下帖子:how-to-serialize-java-primitives-using-jersey-rest

它也不支持序列化原始类型的包装对象,在本例中为 Integer 对象。正如上面的帖子所提到的,您可以构建自己的类来包装 int 并具有适当的注释。

对于您在问题中给出的这种情况,我认为传递一个 String 然后解析它以获得 int 值就足够了:

@POST
@Path("/test")
@Consumes("application/json")
public void test(Person pers, String number){

    int x = Integer.parseInt(number);
    //rest of code here 
} 
于 2012-04-25T10:48:54.987 回答