json数据交互
springmvc 的json数据交互 - 哎幽的成长 - CSDN博客--和老师讲课相同
http://blog.csdn.net/u012373815/article/details/47208187
-----------------
1 json数据交互
为什么要进行json数据交互
json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。
比如:webservice接口,传输json数据.
springmvc进行json交互

1、请求的是json、输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便。
2、请求的是key/value、输出json。此方法比较常用。
1.1.1 @RequestBody
作用:
@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。
本例子应用:
@RequestBody注解实现接收http请求的json数据,将json数据转换为java 对象
1.1.2 @ResponseBody
作用:
该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端
本例子应用:
@ResponseBody注解实现将controller方法返回对象转换为json响应给客户端
1.1.3 请求json,响应json实现:
1.1.3.1 环境准备
1.1.1 加载json转的jar包
Springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的包,如下:
springmvc中使用jackson的包进行json转换(@requestBody和@responseBody使用下边的包进行json转),如下:

1.1.2 配置json转换器
在注解适配器中加入messageConverters
<!--注解适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
注意:如果使用<mvc:annotation-driven /> 则不用定义上边的内容。
1.4 json交互测试
1.4.1 输入json串,输出是json串
1.4.1.1 jsp页面
<scripttype="text/JavaScript"
src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script>
要记得引用js
使用jquery的ajax提交json串,对输出的json结果进行解析。 Ajax 关键词 type 提交方法类型 ,url ,datatype 预期服务器返回的数据类型,
contentType 发送的数据的类型 , success 成功返回,
function requestJson() {
//请求JSON输出json
$.ajax({
type:'post',
url:'${pageContext.request.contextPath}/requestJson.action',
contentType:'application/json;charset=utf-8',
data:'{"name":"手机","price":"999"}', //controller 的java代码中被转换为itemsCustom对象
success:function (data){
alert(data);
}
});
}
1.4.1.2 controller
@Controller
public classJsonTest {
//请求json(商品信息)输出json(商品信息)
//@RequestBody 将请求的商品信息的json串转成ItemsCustom对象
//@ResponseBody 将ItemsCustom转换成json输出
@RequestMapping("/requestJson")
public @ResponseBody ItemsCustomrequestJson(@RequestBodyItemsCustom itemsCustom){
//@ResponseBody 将ItemsCustom转换成json输出
return itemsCustom;
}
}
1.4.1.3 测试结果
1.4.2 输入key/value,输出是json串
1.4.2.1 jsp页面
使用jquery的ajax提交key/value串,对输出的json结果进行解析。
function responseJson() {
//请求key/value输出json
$.ajax({
type:'post',
url:'${pageContext.request.contextPath}/responseJson.action',
//contentType:'application/json;charset=utf-8', 请求key/value默认是key/value 所以不用指定
data:'name=手机&price=999',
success : function(data){
alert(data);
}
});
}
1.4.2.2 controller
//请求key/value(商品信息)输出json(商品信息)
@RequestMapping("/responseJson")
public @ResponseBody ItemsCustomresponseJson( ItemsCustom itemsCustom){ //这里就可以自动转换成itemsCustom 对象了吗?
//@ResponseBody 将ItemsCustom转换成json输出
return itemsCustom;
}
1.4.2.3 测试
1.2.3 小结
实际开发中常用第二种方法,请求key/value数据,响应json结果,方便客户端对结果进行解析。
摘自传智播客视频
json数据交互的更多相关文章
- spring-boot json数据交互
SpringBoot学习之Json数据交互 最近在弄监控主机项目,对javaweb又再努力学习.实际的项目场景中,前后分离几乎是所以项目的标配,全栈的时代的逐渐远去,后端负责业务逻辑处理,前端负责数据 ...
- SpringMVC JSON数据交互
本节内容: @RequestBody @ResponseBody 请求json,响应json实现 前端可以有很多语言来写,但是基本上后台都是java开发的,除了c++(开发周期长),PHP和#Net( ...
- springMVC学习(11)-json数据交互和RESTful支持
一.json数据交互: json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. springMVC进行json交 ...
- SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器
一.参数的传递 1.简单的参数传递 /* @RequestParam用法:入参名字与方法名参数名不一致时使用{ * value:传入的参数名,required:是否必填,defaultValue:默认 ...
- Spring MVC之JSON数据交互和RESTful的支持
1.JSON概述 1.1 什么是JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式.它是基于JavaScript的一个子集,使用了C.C ...
- springmvc的json数据交互
准备 @RequestBody 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json ...
- 1.4(Spring MVC学习笔记)JSON数据交互与RESTful支持
一.JSON数据交互 1.1JSON简介 JSON(JavaScript Object Notation)是一种数据交换格式. 1.2JSON对象结构 {}代表一个对象,{}中写入数据信息,通常为ke ...
- SprimgMVC学习笔记(八)—— SpringMVC与前台json数据交互
一.两种交互形式 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种就是在url的末尾传普通的key/value串过来,针对这两种方式,在Controller类中会有不同的解析, ...
- springmvc学习笔记(18)-json数据交互
springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...
随机推荐
- Lucas定理学习笔记(没有ex_lucas)
题目链接\(Click\) \(Here\) \(ex\_lucas\)实在是不能学的东西...简单学了一下\(Lucas\)然后打算就这样鸽着了\(QwQ\)(奶一口不可能考) 没什么复杂的,证明的 ...
- 【清北学堂2018-刷题冲刺】Contest 6
Task 1:子集 [问题描述] 若一个集合S中任意两个元素x和y,都满足x⊕y<min(x, y) ,则称集合S是"好的".其中⊕为按位异或运算符.现在给定一个大小为n ...
- Java基础方法整理
方法 9.1方法概述 方法就是用来完成解决某件事情或实现某个功能的办法 可以通过在程序代码中引用方法名称和所需的参数,实现在该程序中执行(或称调用)该方法.方法,一般都有一个返回值,用来作为事情的处理 ...
- spring 整合 redis,以及spring的RedisTemplate如何使用
需要的jar包 spring-data-redis-1.6.2.RELEASE.jar jedis-2.7.2.jar(依赖 commons-pool2-2.3.jar) commons-pool2- ...
- rancher使用fluentd-pilot收集日志分享
fluentd-pilot简介 fluentd-pilot是阿里开源的docker日志收集工具,Github项目地址:https://github.com/AliyunContainerService ...
- 网络编程基础【day09】:通过socket实现简单ssh客户端(三)
本节内容 1.概述 2.socket发送中文 3.重复发送和多次接收 4.模拟ssh客户端 一.概述 本篇博客讲一下,如果socket客户端断了,另外的客户端怎么接入服务端,还有模拟ssh的链接等. ...
- JAVA核心技术I---JAVA回顾
一:基础类型运算 大部分的指令都没有支持byte.char.short,没有任何指令支持boolean类型.编译器在编译期或者运行期将byte和short类型的数据带符号扩展为相应的int类型数据,将 ...
- Hadoop记录-技术网站
Grafan监控:http://docs.grafana.org/ Tez:http://tez.apache.org/install.html 阿里巴巴镜像:https://opsx.alibaba ...
- Hadoop记录-Hadoop NameNode 高可用 (High Availability) 实现解析
Hadoop NameNode 高可用 (High Availability) 实现解析 NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDF ...
- [JDK8] Lambda
本文转载原文http://www.cnblogs.com/jalja/p/7655170.html 一.使用线程 public static void main(String[] args) { // ...