如何使用jax rs将json对象传递给java rest Web服务

时间:2011-06-02 08:14:18

标签: java json rest jax-rs jackson

我需要updateGroup方法上的方法签名帮助。 这是json im传递 - 它是一系列动作。

    [{"action":"add","key":"104"}]

这是传递给

的方法
@PUT
@Path("/group/{id}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public IRestResponse updateGroup(@PathParam("id") String GroupName,
                                 Object GroupActions){
    //Do Something...
}

应该{​​{1}}以上接收json的类型。 ? GroupActionsHashMap,某种组合?

2 个答案:

答案 0 :(得分:3)

您可以使用您想要的任何集合类型:List,Collection,ArrayList,HashSet等;或者,有时更好的是指定类型的数组。所以,其中一个:

public IRestResponse updateGroup(..., List<GroupAction> groupActions);
public IRestResponse updateGroup(..., GroupAction[] groupActions);
public IRestResponse updateGroup(..., HashSet<GroupActions> groupActions);

我不太确定为什么其他答案建议您使用String:这不太可行,因为默认转换器不会从JSON / XML类型返回到String,但更重要的是,这是不必要的额外工作没有收获。

但是如果你绝对想要进行手动解析(如果是这样,使用Jackson,这是大多数框架使用的),你将输入作为InputStream并将其提供给解析器。它是使用的最佳“原始类型”,并且没有注册处理程序来引发问题。

答案 1 :(得分:0)

您是否尝试过使用String类型而不是解析它?