2017-07-30 88 views
1

返回休息服务方法的最佳方法是什么?一个Java对象,json字符串或与响应?如何从java中的rest服务返回对象?

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字符串:

例如,这些实施例与API球衣(行家)来实现

@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

所有三种选择似乎有效,但由于您使用的是API(球衣)第一个在我看来是比较一致的,这@Produces注释是常见的方式来使用该API。

此外,它不会让你依赖于另一个lib,GSON,如果它不在其他地方使用,它最终会从你的类路径中删除。