2011-06-02 108 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

您是否嘗試過使用字符串類型而不是解析它?