Quick Retrieve on Google     Quick Retrieve on Bing

Combine Art and Sciences

Blogs transfered from: blog.csdn.net/sonictl

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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 ;)









posted on 2014-11-25 11:21  sonictl  阅读(486)  评论(0编辑  收藏  举报