Consume JSON Object in PUT Restful Service
I'm trying to implement a RESTful Service in Java that receives a JSON Object through a PUT request and automatically maps in开发者_开发百科to a Java Object. I managed to do this in XML, but I can't do it using JSON. Here's what I want to do:
@PUT
@Consumes(MediaType.APPLICATION_XML)
public String putTodo(JAXBElement<Route> r) {
Route route = r.getValue();
route.toString();
System.out.println("Received PUT XML Request");
return "ok";
}
This works, but using JSON would be something similar, but I can't use JAXB, can I?
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public String putTodo(<WHAT DO I PUT HERE>) {
Route route = r.getValue();
route.toString();
System.out.println("Received PUT JSON Request");
return "ok";
}
By default Jersey will use JAXB to process the JSON messages by leveraging the Jettison library.
So you can do the following:
@PUT
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public String putTodo(JAXBElement<Route> r) {
Route route = r.getValue();
route.toString();
System.out.println("Received PUT XML/JSON Request");
return "ok";
}
For More Information on Using Jettison with JAXB:
- http://bdoughan.blogspot.com/2011/04/jaxb-and-json-via-jettison.html
- http://bdoughan.blogspot.com/2011/04/jaxb-and-json-via-jettison-namespace.html
精彩评论