一、json处理方法有两种

    1:导入Spring需要json的jar包。(本例使用)

        使用@ResponseBody该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过         Response响应给客户端     

    

     2:springmvc.xml中配置转换json的配置。

   

二、案例一:使用@ResponseBody

  •    依赖的包

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

index.jsp

<script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.json-2.4.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.form.js"></script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function ajax_json_1(){
var getURL = "<%=request.getContextPath()%>/jsonController/dogList?date="+new Date()+"";
jQuery.get(getURL,function(jsonList){
for(var i = 0;i<jsonList.length;i++){
var dogBean = jsonList[i];
window.alert(dogBean.dogid);
}
},"json");
}
</script>
</head>
<body> <a href="javascript:void(0);" onclick="ajax_json_1();">jQuery来访问_SpringMVC返回json对象</a>
</body>

controller

package com.shyroke.controller;

import java.util.ArrayList;
import java.util.List; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.shyroke.bean.DogBean; @Controller
@RequestMapping(value="/jsonController")
public class JsonController { @RequestMapping(value="/dogList")
@ResponseBody
public List<DogBean> getListDog(){
List<DogBean> dogList=new ArrayList<DogBean>();
DogBean dog1=new DogBean();
dog1.setDogid("1");
dog1.setDogname("dog1"); DogBean dog2=new DogBean();
dog2.setDogid("2");
dog2.setDogname("dog2"); dogList.add(dog1);
dogList.add(dog2);
return dogList;
} }

三、案例二:服务端使用原始的方式返回json数据,方法不需要有返回值

  • 同样需要引入上例的包

<script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.json-2.4.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.form.js"></script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">function ajax_json_2(){
var getURL = "<%=request.getContextPath()%>/jsonController/dogBean?date="+new Date()+"";
jQuery.get(getURL,function(jsonObj){
window.alert(jsonObj.dogid + "\t\t" + jsonObj.dogname);
},"json");
} </script>
</head>
<body>
<a href="javascript:void(0);" onclick="ajax_json_2();">jQuery来访问_原始返回json对象</a>
</body>

controller

package com.shyroke.controller;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.shyroke.bean.DogBean; @Controller
@RequestMapping(value="/jsonController")
public class JsonController { @RequestMapping(value="dogBean")
public void GetDog(HttpServletRequest request,HttpServletResponse response) throws Exception{
PrintWriter out=response.getWriter(); DogBean dog1=new DogBean();
dog1.setDogid("1");
dog1.setDogname("dog1"); /**
* 转成json字符串。
*/
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
// 配置mapper忽略空属性
objectMapper.setSerializationInclusion(Include.NON_EMPTY); String jsonStr = objectMapper.writeValueAsString(dog1); out.print(jsonStr);
out.flush();
out.close();
}
}

最新文章

  1. sublime-生成html1.0
  2. STL中的map/multimap小结
  3. mysql存储过程procedure
  4. 【BZOJ】【3196】Tyvj 1730 二逼平衡树
  5. URAL 1244. Gentlemen (DP)
  6. Hadoop概念学习系列之谈谈RPC(三十三)
  7. php 操作xml文件
  8. NHibernate之映射文件配置说明(转载3)
  9. UMl概述(转)
  10. Redmine开启服务
  11. 输入身份证号码自动读取生日与性别(delphi)
  12. spice-vdagent
  13. Java Servlet 笔记4
  14. java.lang.ClassNotFoundException的解决方法
  15. k8s docker集群搭建
  16. C#中Split用法【转】
  17. CAD2007_DWG转PDF
  18. Element div is not closed
  19. Struts如何获取客户端ip地址
  20. Python 模块化 from .. import 语句资源搜索顺序 (三)

热门文章

  1. 微信小程序之圆形进度条(自定义组件)
  2. Java设计模式: 单例模式
  3. 批量删除Maven 仓库未下载成功.lastupdate 的文件
  4. 学成在线_nginx遇到的问题
  5. java以逗号为分割符拼接字符串的技巧
  6. 123457123456---熊猫猜谜语02(儿童猜谜语大全)--com.threeObj03.CaiMiYu02
  7. JAVA8 JVM内存结构变了,永久代到元空间
  8. 容器版单个jenkins实现CI/CD----带solo博客开源项目
  9. Moq中注入dynamic方法出错
  10. 在Electron运行的子页面无法访问window.opener解决方案