2011-06-02 110 views
0

我需要关于updateGroup方法的方法签名方面的帮助。 这里是json im传递 - 它的一系列动作。如何使用jax rs将json对象传递给java rest webservice

[{"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... 
} 

的方法是什么类型应该GroupActions高于才能收到的JSON。 ? HashMapArrayList,有些组合?

回答

3

你可以使用任何你想要的集合类型:List,Collection,ArrayList,HashSet等;或者,有时候更好的是指定类型的数组。因此,之一:

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

我不明白为什么其他答案建议你使用字符串:这是不可能的工作,对于一个(因为默认的转换器不从JSON/XML型回去字符串)但更重要的是这是不必要的额外工作,没有收获。

但是,如果您绝对想做手动解析(如果是这样,请使用Jackson,这是大多数框架使用的),您将输入为InputStream并将其提供给解析器。这是最佳的“原始类型”使用,并没有注册处理程序导致问题。

0

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