在springboot整合thymeleaf中,常常會在HTML頁面中接收來自服務器的json數據,而後處理json數據並在頁面上渲染。那麼如何在服務器中返回json類型的數據呢?前端
該註解用於將 Controller 的方法返回的對象,經過 HttpMessageConverter 接口轉換爲指定格式的spring
數據如:json,xml 等,經過 Response 響應給客戶端json
在controller的方法上增長@RespongBodyspringboot
@RequestMapping("/findAll.do")
@ResponseBody
public List<SysCategory> findAll(){ //查詢分類信息,具體的service層方法略 List<SysCategory> categoryList = categoryService.findAll(); System.out.println(categoryList); return categoryList; }
Java控制檯打印出的結果以下:服務器
接下來是在前端接收服務器返回的json數據app
$.get("/category/findAll.do",{},function (data) {
console.log(data);
},"json");
在頁面控制檯打印出的結果以下:spa
能夠看到 服務器端的返回的確實是json類型的數據3d
@RestController是@ResponseBody和@Controller二者的結合,使用這個註解後就無需再用那兩個註解。
@RestController
@RequestMapping("/category") public class CategoryController { @Autowired private CategoryService categoryService; @RequestMapping("/findAll.do") public List<SysCategory> findAll(){ List<SysCategory> categoryList = categoryService.findAll(); System.out.println(categoryList); return categoryList; } }
發送的請求和在controller層的業務邏輯和第一種方法同樣。code
在頁面控制檯打印出的結果以下:xml
String obj = "[SysCategory{id=1, name='JavaSe'}, SysCategory{id=2, name='JavaEE'}, SysCategory{id=3, name='前端'}, SysCategory{id=4, name='其餘'}]"
ObjectMapper mapper = new ObjectMapper(); response.setContentType("application/json;charset=utf-8"); mapper.writeValue(response.getOutputStream(),obj);
在頁面控制檯打印出的結果以下: