本文主要以一个简单的小例子,简述SpringMVC开发中,Json的相关应用,仅供学习分享使用,如有不足之处,还请指正。
什么是Json ?
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式,比 XML 更小、更快,更易解析。
- JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。
- JSON 具有自我描述性,更易理解。
SpringMVC支持Json操作步骤
在SpringMVC支持注解的基础之上,需要支持Json格式返回数据,步骤如下:
1. 导入jackson的三个支持的包(如果没有导入包,会报406错误)
需要导入的Jar包如下:
1 //三个需要需要人的jackson包 2 jackson-annotations-2.2.1.jar 3 jackson-core-2.2.1.jar 4 jackson-databind-2.2.1.jar
2. 在方法上增加一个注解@ResponseBody
如下所示:
1 /** 2 * 如果要返回Json,需要增加注解@ResponseBody,否则会当成路径返回 3 * 如果返回406错误,则是包缺失 4 * @return 5 */ 6 @RequestMapping("/json01") 7 @ResponseBody 8 public String json01(){ 9 System.out.println("json 被调用。。。。。"); 10 return "Hello world!!!"; 11 }
3. 访问
打开浏览器,输入网址,如下所示:
SpringMVC返回不同类型的Json
1. 返回数组
如下所示,直接返回String[]即可。
1 /** 2 * 返回数组 3 * @return 4 */ 5 @RequestMapping("/json02") 6 @ResponseBody 7 public String[] json02(){ 8 System.out.println("json 被调用。。。。。"); 9 String[] arr=new String[]{"小明","小花"}; 10 return arr; 11 }
页面如下所示:
2. 返回类对象
如下所示:直接返回User对象
1 /** 2 * 返回对象 3 * @return 4 */ 5 @RequestMapping("/json03") 6 @ResponseBody 7 public User json03(){ 8 System.out.println("json 被调用。。。。。"); 9 User user=new User(1l,"张三",3,new Date()); 10 return user; 11 }
如下图所示:返回的是Json格式的对象
如果返回的对象中有日期格式,则需要处理返回的格式
1 /** 2 * 从后台到前台,设置的格式 3 * @return 4 */ 5 @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") 6 public Date getDate() { 7 return date; 8 } 9 10 /** 11 * 从前台到后台,接收时设置参数格式 12 * @param date 13 */ 14 @DateTimeFormat(pattern="yyyy-MM-dd") 15 public void setDate(Date date) { 16 this.date = date; 17 }
3. 返回对象列表
如下所示:返回的是List<User>对象列表
1 /** 2 * 返回对象列表 3 * @return 4 */ 5 @RequestMapping("/json04") 6 @ResponseBody 7 public List<User> json04(){ 8 System.out.println("json 被调用。。。。。"); 9 List<User> lst=new ArrayList<User>(); 10 User zs=new User(1l,"张三",3,new Date()); 11 User ls=new User(2l,"李四",4,new Date()); 12 User ww=new User(3l,"王五",5,new Date()); 13 lst.add(zs); 14 lst.add(ls); 15 lst.add(ww); 16 return lst; 17 }
如下图所示:返回的是一个对象的数组
备注
莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。