NiceLeeのBlog 用爱发电 bilibili~

SpringBoot 踩坑记录(五)- 返回json的几种方式

2018-12-14
nIceLee

阅读:


本文记录SpringBoot学习中遇到的问题。
前文提及了操控注解@Controller等的控制返回类型,现在给出返回json的三种实现方式

一、@RestController

这个方式前文已提及:

@RestController
public class SampleController {
    
    @RequestMapping("/getUser")
    public User getUser() {
		User user = new User();
		user.setId(123);
		user.setSex("male");
		user.setUsername("nicelee");
		return user;
    }
}

二、@ResponseBody

在类的注释为Controller的情况下,在相应的方法注释前加上@ResponseBody:

@Controller
public class SampleController {
    
	@ResponseBody
    @RequestMapping("/getUser")
    public User getUser() {
		User user = new User();
		user.setId(123);
		user.setSex("male");
		user.setUsername("nicelee");
		return user;
    }
}

三、使用HttpServletResponse

这种方式使用HttpServletResponse直接答复,页面返回null

@Controller
public class SampleController {
    
    @RequestMapping("/getUser")
	public String test(HttpServletResponse response){
		User user = new User();
		user.setId(123);
		user.setSex("male");
		user.setUsername("nicelee");
		String data = JSON.toJSONString(user);
		try {
			response.setContentType("application/json;charset=UTF-8");
			PrintWriter out = response.getWriter();
			out.println(data);
			out.flush();
			out.close();
		} catch (Exception e) {
		  e.printStackTrace();
		}
		return null;
    }
}

内容
隐藏