2011-06-02 2 views
0

J'ai besoin d'aide pour la signature de la méthode sur la méthode updateGroup. Voici le json im passing - c'est un tableau d'actions.comment passer l'objet json à un service web de repos java en utilisant jax rs

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

c'est la méthode qu'elle soit passé à

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

Quel type devrait être GroupActions ci-dessus pour recevoir la JSON. ? HashMap, ArrayList, une combinaison?

Répondre

3

Vous pouvez utiliser n'importe quel type de collection: List, Collection, ArrayList, HashSet, etc; ou, ce qui est parfois mieux, tableau de type spécifié. Ainsi, l'un:

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

Je ne suis pas tout à fait sûr pourquoi d'autres réponses suggèrent que vous utilisez cordes: il est peu probable de travailler, pour un (car les convertisseurs par défaut ne vont pas en arrière à partir du type JSON/XML à cordes), mais plus important encore, c'est un travail supplémentaire inutile pour aucun gain. Mais si vous voulez absolument faire une analyse manuelle (si c'est le cas, utilisez Jackson, c'est ce que la plupart des frameworks utilisent), vous prendrez l'entrée comme InputStream et la chargera dans l'analyseur. C'est le "type brut" optimal à utiliser et n'a pas de gestionnaire enregistré pour causer des problèmes.

0

Avez-vous essayé d'utiliser le type String et de l'analyser?

Questions connexes