Controller是基于MVC模式中的控制器,負責接收HTTP請求,調用相應的業務邏輯處理,并返回HTTP響應。在一些前后端分離的場景下,Controller通常需要返回JSON格式的數據。
Controller返回JSON數據的方式有多種,下面介紹其中兩種常用方式。
第一種方式是使用@ResponseBody注解,示例代碼如下:
@RequestMapping(value = "/getUserById/{id}", method = RequestMethod.GET) @ResponseBody public User getUserById(@PathVariable("id") Integer id) { User user = userService.getUserById(id); return user; }
在該示例代碼中,@ResponseBody注解表示返回值將被序列化為JSON字符串。方法getUserById返回類型為User,在返回時會自動進行JSON序列化,使得返回的結果為JSON格式的數據。
第二種方式是使用ResponseEntity對象,示例代碼如下:
@RequestMapping(value = "/getUserById/{id}", method = RequestMethod.GET) public ResponseEntitygetUserById(@PathVariable("id") Integer id) { User user = userService.getUserById(id); if (null == user) { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } return new ResponseEntity<>(user, HttpStatus.OK); }
在該示例代碼中,使用了ResponseEntity對象來封裝返回的數據和HTTP狀態碼。如果查詢不到用戶信息,返回狀態碼為404(NOT_FOUND),反之返回狀態碼為200(OK)和用戶信息。
以上是兩種常用的Controller返回JSON數據的方式,不同的應用場景下可以選擇不同的方式。需要注意的是,需要在項目中添加Jackson相關依賴,否則JSON序列化將無法正常進行。