返回休息服务方法值的最佳方法是什么?一个java对象,json字符串还是带有Response?
例如,这些例子是用api jersey(maven)实现的:
1)返回java对象(映射到json):
@GET
@Path("/getUser")
@Produces({MediaType.APPLICATION_JSON})
public UserVO getUser() {
UserVO user = new UserVO();
user.setValid(true);
user.setName("Peter");
return user;
}
2)返回一个json字符串:
@GET
@Path("/getUser")
public String getUser() {
UserVO user = new UserVO();
user.setValid(true);
user.setName("Peter");
Gson gson = new Gson();
String jsonResp = gson.toJson(user);
return jsonResp;
}
3)回复json:
@GET
@Path("/getUser")
public Response getUser() {
UserVO user = new UserVO();
user.setValid(true);
user.setName("Peter");
Gson gson = new Gson();
String jsonResp = gson.toJson(user);
return Response.ok(jsonResp, MediaType.APPLICATION_JSON).build();
}
这3个有什么区别?哪个更好用?
(考虑到它将从javascript中消费)
答案 0 :(得分:0)
所有这三个选项似乎都有效,但第一个选项在我看来更加一致,因为你使用的是API(球衣),这个@produces注释是使用该API的常用方法。
此外,它不会让你依赖另一个lib,GSON,如果它没有在其他地方使用,你最终可以从你的类路径中删除它。