本文主要以一个简单的小例子,简述SpringMVC开发中,Json的相关应用,仅供学习分享使用,如有不足之处,还请指正。

什么是Json ?

  1. JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式,比 XML 更小、更快,更易解析。
  2. JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。
  3. JSON 具有自我描述性,更易理解。

SpringMVC支持Json操作步骤

在SpringMVC支持注解的基础之上,需要支持Json格式返回数据,步骤如下:

1. 导入jackson的三个支持的包(如果没有导入包,会报406错误)

需要导入的Jar包如下:

 //三个需要需要人的jackson包
jackson-annotations-2.2.1.jar
jackson-core-2.2.1.jar
jackson-databind-2.2.1.jar

2. 在方法上增加一个注解@ResponseBody

如下所示:

 /**
* 如果要返回Json,需要增加注解@ResponseBody,否则会当成路径返回
* 如果返回406错误,则是包缺失
* @return
*/
@RequestMapping("/json01")
@ResponseBody
public String json01(){
System.out.println("json 被调用。。。。。");
return "Hello world!!!";
}

3. 访问

打开浏览器,输入网址,如下所示:

SpringMVC返回不同类型的Json

1. 返回数组

如下所示,直接返回String[]即可。

 /**
* 返回数组
* @return
*/
@RequestMapping("/json02")
@ResponseBody
public String[] json02(){
System.out.println("json 被调用。。。。。");
String[] arr=new String[]{"小明","小花"};
return arr;
}

页面如下所示:

2. 返回类对象

如下所示:直接返回User对象

 /**
* 返回对象
* @return
*/
@RequestMapping("/json03")
@ResponseBody
public User json03(){
System.out.println("json 被调用。。。。。");
User user=new User(1l,"张三",3,new Date());
return user;
}

如下图所示:返回的是Json格式的对象

如果返回的对象中有日期格式,则需要处理返回的格式

 /**
* 从后台到前台,设置的格式
* @return
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
public Date getDate() {
return date;
} /**
* 从前台到后台,接收时设置参数格式
* @param date
*/
@DateTimeFormat(pattern="yyyy-MM-dd")
public void setDate(Date date) {
this.date = date;
}

3. 返回对象列表

如下所示:返回的是List<User>对象列表

 /**
* 返回对象列表
* @return
*/
@RequestMapping("/json04")
@ResponseBody
public List<User> json04(){
System.out.println("json 被调用。。。。。");
List<User> lst=new ArrayList<User>();
User zs=new User(1l,"张三",3,new Date());
User ls=new User(2l,"李四",4,new Date());
User ww=new User(3l,"王五",5,new Date());
lst.add(zs);
lst.add(ls);
lst.add(ww);
return lst;
}

如下图所示:返回的是一个对象的数组

备注

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。

最新文章

  1. 使用VS Code开发 调试.NET Core 应用程序
  2. 大数据热点问题TOP K
  3. pos机抹零功能
  4. 关于Android使TextView可以滚动的设置
  5. poj 1321 棋盘问题【dfs】
  6. Substrings(hd1238)
  7. hadoop运行作业的脚本解析
  8. Failed to install *.apk on device &#39;emulator-5554&#39;: timeout
  9. 防火墙和iptables
  10. JVM学习②
  11. C++ openmp并行程序在多核linux上如何最大化使用cpu
  12. oracle创建与mysql的dblink
  13. SIFT算法
  14. zk 创建瞬时、顺序节点的原理
  15. apache-httpd工作模式
  16. mysqlslap 压力测试工具
  17. 百度地图Api进阶教程-默认控件和自定义控件2.html
  18. debian安装ibus中文输入法
  19. 给iphone配置qq邮箱
  20. DPK750针式打印机驱动,750u.dll下载

热门文章

  1. python之encode和decode编码
  2. Leetcode题解 - 贪心算法部分简单题目代码+思路(860、944、1005、1029、1046、1217、1221)
  3. C#_.NetCore_WebAPI项目_EXCEL数据导出(ExcelHelper_第二版_优化逻辑)
  4. 高版本Visual Studio和低版本ArcGIS共存 工具箱没有控件的解决方法
  5. npm 镜像配置
  6. Java每日一面(Part2数据库)[19/11/28]
  7. Java异常及异常处理
  8. library: Vulnhub Walkthrough
  9. 苹果_公司开发者账号_申请DUNS number
  10. Github访问速度很慢的原因,以及解决方法