springMVC返回json的几种方式

@Controller
public class Springcontroller {
	
	/***
	 * 返回类型是string需要用produces进行转码,并格式化
	 * json格式化 可以用Gson处理(obj <-> json)互相转换
	 * @return
	 * @date 2017年5月12日
	 * @author wanwenjun
	 */
	@RequestMapping(value="/stu",produces="application/json; charset=utf-8")
	@ResponseBody
	public String getStudent(){
		
		Student s = (Student) SpringContext.getBean("student");
		
		Gson gson = new Gson();
		
		//obj to String
		String stu = gson.toJson(s);
		
		//String to obj
		Student s2 = gson.fromJson(stu,Student.class);
		
		System.out.println(s2.toString());
		
		return stu;
	}
	
	
	/****
	 * 返回类型是map,中文没有乱码
	 * 在页面上看的返回格式效果和上述produces="application/json; charset=utf-8" 一样
	 * @date 2017年5月12日
	 * @author wanwenjun
	 * @return Map<String,Student>
	 */
	@ResponseBody
	@RequestMapping(value="/stumap")
	public Map<String,Student> get(){
		Student s = (Student) SpringContext.getBean("student");
		Map<String, Student> map = new HashMap<>();
		map.put("stu", s);
		return map;
	}
	
	
	
	@ResponseBody
	@RequestMapping(value="/stulist")
	public List<Student> getList(){
		Student s = (Student) SpringContext.getBean("student");
		List<Student> list = new ArrayList<Student>();
		list.add(s);
		return list;
	}
	
	/****
	 * 效果和Map一致,但需要jackson jar包支持
	 * @date 2017年5月12日
	 * @author wanwenjun
	 * @return ModelAndView
	 */
	@ResponseBody
	@RequestMapping(value="/student")
	public ModelAndView getStu(String a){
		Student s = (Student) SpringContext.getBean("student");
		
		Map<String, Student> map = new HashMap<>();
		map.put("stu", s);
		
		return new ModelAndView(new MappingJackson2JsonView(),map);
	}
	
	
	

}

 maven依赖:

Jackson

		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.7.3</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.7.3</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.7.3</version>
		</dependency>

猜你喜欢

转载自whenjun.iteye.com/blog/2373988