Spring MVC 学习笔记11 —— 后端返回json格式数据
我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点:
1. JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法.
2. 它是一种基于文本,独立于语言的轻量级数据交换格式.
3. json的两种结构:对象{key:value,key:value,...} 和 数组 [value, value2, ... ]
4. json字符串:普通字符串、json字符串、json对象的区别
5. 不同编程工具使用json的方法
参考:http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html
Spring MVC 返回json数据,用show来实现:
UserController.java:
保持两套请求,一套是传统的请求返回数据;一套是请求json格式返回数据。
//6. 查一个用户 show.jsp
@RequestMapping(value="/{username}", method=RequestMethod.GET)
public String show(@PathVariable String username, Model model){
model.addAttribute("user1",users.get(username)); //user1参数属性名,到了视图,就是user1
return "user/show";
} //6. 查一个用户 show.jsp
@RequestMapping(value="/{username}", method=RequestMethod.GET, params="jsoon")
@ResponseBody //这里要加一行
public User show(@PathVariable String username){ //声明中没有了Model
//model.addAttribute("user1",users.get(username));
return users.get(username); //不返回String了,返回user对象
}
说明,以上代码中:
1. 增加@ResponseBody,
2. no return String, but User Object
3. no Model
4. directly return users.get(username)//注意返回的是一个User对象
5. 可以在RequestMapping行增加一个请求值:Params="jsoon"//这是规定如要进这个方法返回json,需要带个参数jsoon
此时可测试,返回406错误如图:(通过url加入?jsoon访问了,但没有头文件为它进行解释)
所以我们需要加入一个jar包:jackson-all-1.x.x.jar
从这个网址可以下载到:http://jarfiles.pandaidea.com/jackson.all.html
把jar包复制到项目文件夹/lib文件夹下,重新debug,链接进入:http://localhost:8080/myhello/user/sdy?jsoon
此时,有的浏览器Chrome,firefox等能显示如下,其他浏览器如360等,会提示下载sdy.json文件,notepad++打开以后也是如下内容。
Enjoy ;)