(九)springmvc之json的处理(服务端发送json数据到客户端)
一、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入门指南--服务端处理JSON
		
平时公司使用的ASP.NET MVC3来开发Web项目,其实在ASP.NET中已经原生的支持JSON.所以基本不需要引进Newtonsoft.Json.dll.下面看在MVC4中,后台生成JSON数据 ...
 - Query通过Ajax向PHP服务端发送请求并返回JSON数据
		
Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...
 - jQuery通过Ajax向PHP服务端发送请求并返回JSON数据
		
SON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用.请接着往下看教 ...
 - 【转】C# client 与java netty 服务端的简单通信,客户端采用Unity
		
http://blog.csdn.net/wilsonke/article/details/24721057 近日根据官方提供的通信例子自己写了一个关于Unity(C#)和后台通信的类,拿出来和大家分 ...
 - Android从服务端获取json解析显示在客户端上面
		
Android从服务端获取json解析显示在客户端上面 百度经验:jingyan.baidu.com 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Jso ...
 - jq ajax传递json对象到服务端及contentType的用法
		
目录 0.一般情况下,通过键值对的方式将参数传递到服务端 1.ajax 传递复杂json对象到服务端 2.content-Type 对asp.net mvc项目的重要性 0.一般情况下,通过键值对的方 ...
 - fastjson解析服务端返回的数据
		
1.配置依赖 //fastjson api 'com.alibaba:fastjson:1.2.44' 2.设计服务端返回的数据 {},{},{}]} 3.编写bean类,特别注意,要和服务端返回的类 ...
 - Spring Boot 集成 WebSocket 实现服务端推送消息到客户端
		
假设有这样一个场景:服务端的资源经常在更新,客户端需要尽量及时地了解到这些更新发生后展示给用户,如果是 HTTP 1.1,通常会开启 ajax 请求询问服务端是否有更新,通过定时器反复轮询服务端响应的 ...
 - iOS:根据日志去定位网络请求发生的错误是由于服务端造成的,还是客户端造成的?
		
一.介绍 在项目开发中,服务端和客户端的协作尤为重要,而连接它们的最重要的环节之一就是网络请求,对于服务端而言,如果这个环节出现了错误,那么安全性就无从谈起,同时对于客户端而言,如果这个模块出现了错误 ...
 
随机推荐
- jQuery Ajax calls and the Html.AntiForgeryToken()
			
jQuery Ajax calls and the Html.AntiForgeryToken() https://stackoverflow.com/a/4074289/3782855 I use ...
 - pom.xml中properties作用
			
可以在properties下声明相应的版本信息,然后在dependency下引用的时候用${spring-version}就可以引入该版本jar包了 <properties> <sp ...
 - sql查询表的所有字段和表字段对应的类型
			
1.查询表的所有字段 select syscolumns.name from syscolumns where id=object_id('写上要查询的表名') 2.查询表的所有字段+表字段对应的类型 ...
 - Coherent Calculator
			
计算逻辑 输入想要的参数后点击以下按钮进行计算和调整: Formula Bigger N Smaller N Bigger M Smaller M 所以在这个策略中Ft被Fixed在输入的值,其他的三 ...
 - java 获取String中的数字
			
随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...
 - springboot拦截json后缀的请求,返回json数据
			
需求:请求list.json返回以下数据 { "jsonResult": { "code": 200, "message": "查 ...
 - UIScrollView实现自动循环滚动广告
			
实现效果如下: 功能说明: 程序运行,图片自动循环播放,采用定时器实现; 当用户用手势触摸滑动时,定时器的自动播放取消,停止触摸时,自动无限播放; 代码如下 : 采用封装视图,外部进行调用即可: 1. ...
 - IDEA的查询引用、调用关系图的功能(转)
			
转自: http://www.cnblogs.com/ghj1976/p/5382455.html Eclipse的"Call Hierarchy"可以查看一个Java方法或类成员 ...
 - LINQ语法详解
			
我会通过一些列的实例向大家讲解LINQ的语法. 先创建一个Person类,作为数据实体 public class Person { public string Name { get; set; } p ...
 - python面向对象之封装,继承,多态
			
封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容.在python的类中,封装即通过__init__函数将数据赋给对应的变量进行保存,便于其他地方使用 所以,在使用面向对象的封装特 ...