![](/img/trans.png)
[英]Spring: return @ResponseBody “ResponseEntity<List<JSONObject>>”
[英]@ResponseBody , ResponseEntity Spring return Object as JSON
我正在使用Spring版本4(spring數據),我想將Object作為JSON返回,我想知道即使沒有使用xmlRootElement注釋用戶類,下面的代碼也能正常工作:
@RequestMapping(value = "/resources/users", method = RequestMethod.GET)
public ResponseEntity<User> getUserByLogonId(OAuth2Authentication auth) {
String userLogonId = ((org.springframework.security.core.userdetails.User) auth.getUserAuthentication()
.getPrincipal()).getUsername();
UsersServices usersServices = new UsersServicesImpl(usersOperations);
User user = usersServices.findByLogonId(userLogonId);
HttpStatus userStatus = HttpStatus.NOT_FOUND;
if (user != null) {
userStatus = HttpStatus.FOUND;
}
return new ResponseEntity<User>(user, userStatus);
}
任何機構都能解釋一下 是ResponseBody / ResponseEntity自己做的工作? 當我需要注釋要作為JSON返回的對象類。
@RestController
本身添加了@ResponseBody
注釋。 你可以在Github問題中看到它
您還可以查看官方的春季教程 。 在這里,您可以查看以下行和示例:
除了
add
案例之外,這些控制器方法返回簡單的POJO -Collection<Bookmark>
和Bookmark
等。 當一個HTTP請求進來指定一個Accept header
,Spring MVC
循環通過配置的HttpMessageConverter
直到它找到一個可以從POJO
域模型類型轉換為Accept header
指定的內容類型,如果這樣配置的話。
您還可以按照官方文檔中的以下行和示例進行操作
@RestController是一個結合@ResponseBody和@Controller的構造型注釋。 更重要的是,它為您的Controller提供了更多的意義,並且可能在框架的未來版本中帶來額外的語義。
和,
與@RequestBody和@ResponseBody一樣,Spring使用HttpMessageConverter來轉換請求和響應流。
xmlRootElement
用於將對象表示為XML文檔中的XML元素。 XML與JSON無關。
當你通過@RestController
注釋你的類時,它為每個方法組合了@Controller
for class和@ResponseBody
。 然后HttpMessageConverter
從請求和響應流轉換。
@ResponseEntity
用於與自定義參數(標題,http代碼等)形成http響應。 例如:
return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
Spring引導使用jackson json庫對json對象進行編組和解組java對象,無需任何顯式配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.