上手spring boot项目之springboot如何返回json数据
Posted 程序猿修炼之道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上手spring boot项目之springboot如何返回json数据相关的知识,希望对你有一定的参考价值。
在springboot整合thymeleaf中,经常会在html页面中接收来自服务器的json数据,然后处理json数据并在页面上渲染。那么如何在服务器中返回json类型的数据呢?
1.使用@ResponseBody注解
该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的
数据如:json,xml 等,通过 Response 响应给客户端
在controller的方法上增加@RespongBody
@RequestMapping("/findAll.do")
@ResponseBody
public List<SysCategory> findAll(){
//查询分类信息,具体的service层方法略
List<SysCategory> categoryList = categoryService.findAll();
System.out.println(categoryList);
return categoryList;
}
Java控制台打印出的结果如下:
接下来是在前端接收服务器返回的json数据
$.get("/category/findAll.do",{},function (data) {
console.log(data);
},"json");
在页面控制台打印出的结果如下:
可以看到 服务器端的返回的确实是json类型的数据
2. 使用@RestController注解
@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层的业务逻辑和第一种方法一样。
在页面控制台打印出的结果如下:
3.使用response将数据写回客户端(不推荐)
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);
在页面控制台打印出的结果如下:
以上是关于上手spring boot项目之springboot如何返回json数据的主要内容,如果未能解决你的问题,请参考以下文章
上手spring boot项目之spring boot整合mybatis进行增删改查的三种方式。