使用JSON请求并生成不同的输出

时间:2012-08-27 08:43:38

标签: java json rest restful-url

你能指点我或者解释我如何声明使用JSON请求的RESTful web服务,并且基于JSON内部的参数产生不同格式的输出,这意味着客户可以用JSON输出,但也可以用pdf输出。我在JBoss 5.1上使用Java和RestEasy。

2 个答案:

答案 0 :(得分:3)

您可以在返回RestEasy Response对象的方法上映射请求,使用ResponseBuilder构建响应,根据JSON中的参数动态设置响应的mime类型。< / p>

@POST
@Path("/foo")
@Consumes("application/json")
public Response fooService(MyObject obj) {
   MyResponseEntity entity = MyObjectService.retrieveSomethingFrom(obj);
   return Response.status(200).entity(entity).type(obj.isXml() ? "text/xml" : "application/json").build();
}

这样,如果表示传入JSON的MyObject域对象的参数xml设置为true,则Response对象被参数化以生成text/xml,否则会生成application/json {{1}}。 RestEasy应该做其余的事。

答案 1 :(得分:0)

你可以这样使用

@Path("/")
public class Test {

@Path("/test")
@POST 
@Consumes("application/json")
@Produces("text/plain")
public Response addOrderJSON(OrderDetails details) {...}


}