使用JSON传递对象和整数

时间:2012-04-25 10:15:33

标签: java json rest integer jersey

我想将带有附加整数的对象传输到Jersey-Service。

我的服务方法如下:

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

并且身体中的Json看起来像这样:

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

它没有额外的整数。

所以我认为它必须是错误的JSON消息?

BTW:该数字与对象无关,因此我无法将此var集成到person-class中。

有人可以帮助我吗?

最好的问候

1 个答案:

答案 0 :(得分: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 
}