2017-07-30 91 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,如果它不在其他地方使用,它最終會從你的類路徑中刪除。