springmvc 的json数据交互 - 哎幽的成长 - CSDN博客--和老师讲课相同
http://blog.csdn.net/u012373815/article/details/47208187

-----------------

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数据交互的更多相关文章

  1. spring-boot json数据交互

    SpringBoot学习之Json数据交互 最近在弄监控主机项目,对javaweb又再努力学习.实际的项目场景中,前后分离几乎是所以项目的标配,全栈的时代的逐渐远去,后端负责业务逻辑处理,前端负责数据 ...

  2. SpringMVC JSON数据交互

    本节内容: @RequestBody @ResponseBody 请求json,响应json实现 前端可以有很多语言来写,但是基本上后台都是java开发的,除了c++(开发周期长),PHP和#Net( ...

  3. springMVC学习(11)-json数据交互和RESTful支持

    一.json数据交互: json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. springMVC进行json交 ...

  4. SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器

    一.参数的传递 1.简单的参数传递 /* @RequestParam用法:入参名字与方法名参数名不一致时使用{ * value:传入的参数名,required:是否必填,defaultValue:默认 ...

  5. Spring MVC之JSON数据交互和RESTful的支持

    1.JSON概述 1.1 什么是JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式.它是基于JavaScript的一个子集,使用了C.C ...

  6. springmvc的json数据交互

    准备 @RequestBody 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json ...

  7. 1.4(Spring MVC学习笔记)JSON数据交互与RESTful支持

    一.JSON数据交互 1.1JSON简介 JSON(JavaScript Object Notation)是一种数据交换格式. 1.2JSON对象结构 {}代表一个对象,{}中写入数据信息,通常为ke ...

  8. SprimgMVC学习笔记(八)—— SpringMVC与前台json数据交互

    一.两种交互形式 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种就是在url的末尾传普通的key/value串过来,针对这两种方式,在Controller类中会有不同的解析, ...

  9. springmvc学习笔记(18)-json数据交互

    springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...

随机推荐

  1. Oracle 常用的十大 DDL 对象

    table:(表) 创建表 create table test3 (tid number,tname varchar2(),hiredate date default sysdate); create ...

  2. Educational Codeforces Round 55 (Rated for Div. 2) B. Vova and Trophies

    传送门 https://www.cnblogs.com/violet-acmer/p/10035971.html 题意: Vova有n个奖杯,这n个奖杯全部是金奖或银奖,Vova将所有奖杯排成一排,你 ...

  3. charles使用:iOS11的手机用charles抓包https

    参考:https://www.jianshu.com/p/235bc6c3ca77 因为ios11经常抓不了包,以前一直没管,今天实在是不行,,,,搞了一下.OK了 步骤: 1.下载并安装charle ...

  4. socket关闭状态问题

    下面是对 譬如  “CLOSE_WAIT” 现象的一些解释: 主动关闭方和被动方经历的状态:FIN_WAIT_1(主动关闭一方): 当SOCKET在ESTABLISHED状态时,它想主动关     闭 ...

  5. Vue(基础六)_嵌套路由(续)

    一.前言                  1.路由嵌套里面的公共路由                  2.keep-alive路由缓存                  3.导航守卫 二.主要内容 ...

  6. nGrinder TestRunner DNS / sun.net.spi.nameservice.NameServiceDescriptor

    s ngrinder3.3控制台验证脚本报错 http://ngrinder.642.n7.nabble.com/ngrinder3-3-td1301.html 目前发现3.3版本在控制台校验脚本报错 ...

  7. CentOS7 上以 RPM 包方式安装 Oracle 18c 单实例

    安装阿里云 YUM 源 https://opsx.alibaba.com/mirror?lang=zh-CN 一.安装Oracle数据库 1.安装 Oracle 预安装 RPM yum -y loca ...

  8. MyBatis-resultType 几种返回类型

    一.返回集合 1.返回JavaBean集合 public List<MyUser> selectMyUserByNameLike(String name); <!-- resultT ...

  9. Javascript的作用域和闭包(一)

    一.作用域是什么? 几乎所有的编程语言最基本的功能之一,就是能够存储变量的值,并且能访问和修改这些值. 修改变量值的过程我们通常在程序执行时,称为改变一个对象的状态.有了状态,让程序变得有非常有趣. ...

  10. vue使用字体图标转码问题

    使用iconfont字体之后,出现的是一个方框,而没有出现相应的图标 需要通过String.fromCharCode方法转成指定unicode编码对应的十六进制字符 <div class=&qu ...