(九)springmvc之json的处理(服务端发送json数据到客户端)
2017-11-03 15:13
706 查看
一、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(); } }
相关文章推荐
- (九)springmvc之json的数据请求(客户端发送json数据到服务端)
- json数据客户端和服务端的处理方法
- SpringMVC客户端发送json数据时报400错误
- SpringMvc 服务端发布json数据+android客户端解析json数据
- SpringMVC,接受、处理Json,fastjson解析json,用Postman4发送json数据
- 客户端POST发送json数据给服务端,客户端端接收服务器端json数据响应
- 前端json格式数据发送到SpringMVC 服务端
- TCP与UDP的异同(服务端接收数据,客户端发送数据)
- 【SpringMVC】异步发送表单数据到JavaBean,并响应JSON文本返回(十七)
- java 基于tcp客户端服务端发送接收数据
- ajax发送json数据到springmvc的controller
- JSON 数据(集合数据)到服务端的处理
- SpringMVC处理json数据
- java netty 服务端向客户端发送16进制数据,客户端无法接收-已解决
- springMVC_json格式数据的接收和发送(未解决中文乱码问题)
- springmvc处理json数据
- jQuery通过Ajax向PHP服务端发送请求并返回JSON数据
- android使用JSON进行网络数据交换(服务端、客户端)的实现
- socekt客户端想socekt服务端发送数据