我遇到以下问题。如果我像这样返回声明,它就会起作用:
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("foo")
public Response foo(Model bar) throws CustomException {
// do parsing and return response
JSONObject response = fooBar.handleRequest(bar);
return Response.status(HTTP_STATUS).entity(response.toString()).build();
}
如果我在没有“.toString()”的情况下尝试它,我会得到一个空的 json 对象。 到目前为止找不到任何答案...
有人知道为什么吗?
最佳答案
将返回类型更改为对象,仅返回 JSONObject
,而不将其转换为 String
。 jackson 将负责转换。
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("foo")
public Object foo(Model bar) throws CustomException {
// do parsing and return response
JSONObject response = fooBar.handleRequest(bar);
return response;
}
关于Javax JSON 响应仅适用于 ".toString",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37855995/