(九)springmvc之json的处理(服务端发送json数据到客户端)
2024-10-13 00:28:31
一、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();
}
}
最新文章
- sublime-生成html1.0
- STL中的map/multimap小结
- mysql存储过程procedure
- 【BZOJ】【3196】Tyvj 1730 二逼平衡树
- URAL 1244. Gentlemen (DP)
- Hadoop概念学习系列之谈谈RPC(三十三)
- php 操作xml文件
- NHibernate之映射文件配置说明(转载3)
- UMl概述(转)
- Redmine开启服务
- 输入身份证号码自动读取生日与性别(delphi)
- spice-vdagent
- Java Servlet 笔记4
- java.lang.ClassNotFoundException的解决方法
- k8s docker集群搭建
- C#中Split用法【转】
- CAD2007_DWG转PDF
- Element div is not closed
- Struts如何获取客户端ip地址
- Python 模块化 from .. import 语句资源搜索顺序 (三)
热门文章
- 微信小程序之圆形进度条(自定义组件)
- Java设计模式: 单例模式
- 批量删除Maven 仓库未下载成功.lastupdate 的文件
- 学成在线_nginx遇到的问题
- java以逗号为分割符拼接字符串的技巧
- 123457123456---熊猫猜谜语02(儿童猜谜语大全)--com.threeObj03.CaiMiYu02
- JAVA8 JVM内存结构变了,永久代到元空间
- 容器版单个jenkins实现CI/CD----带solo博客开源项目
- Moq中注入dynamic方法出错
- 在Electron运行的子页面无法访问window.opener解决方案