手机版

springmvc实现json交互-requestBody和responseBody

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

json数据交互

1.为什么要进行json数据交互

json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。

比如:webservice接口,传输json数据。

2.springmvc进行json交互

(1)请求json、输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便。

(2)请求关键/价值,输出json。此方法比较常用。

3.环境准备

3.1加载json转的冲突包

springmvc中使用杰克逊的包进行json转换(@requestBody和@responseBody使用下边的包进行json转),如下:

杰克逊-核心-美国手语-1.9.11.jar

jackson-mapper-asl-1.9.11.jar

@RequestBody作用:

@RequestBody注解用于读取超文本传送协议(超文本传输协议的缩写)请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到控制器方法的参数上。

本例子应用:

@RequestBody注解实现接收超文本传送协议(超文本传输协议的缩写)请求的json数据,将json数据转换为爪哇岛对象

@ResponseBody作用:

该注解用于将控制器的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过反应响应给客户端

本例子应用:

@ResponseBody注解实现将控制器方法返回对象转换为json响应给客户端

3.2配置json转换器

在注解适配器中加入消息转换器

!-注解适配器比恩类=' org。弹簧框架。网络。servlet。MVC。方法。注释。requestmappinhandleradapter '属性名='消息转换器'列表豆类=' org。弹簧框架。http。转换器。JSON。mapping jacksonhtmessageconverter '/bean/list/property/bean注意:如果使用MVC :注释驱动/则不用定义上边的内容。

4.json交互测试

4.1输入json串,输出是json串

4.1.1jsp页面

使用jquery的创建交互式、快速动态网页应用的网页开发技术提交json串,对输出的json结果进行解析。

使用jduery别忘记引入jquery-1.4.4.min.js

“% @”页面语言=“Java”导入=“Java”。乌提尔。*“页面编码=”utf-8“% % String path=request。getcontextpath();字符串基本路径=请求。getscheme()' ://'请求。getservername()“:”请求。getserverport()“path ”/;% !DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' HTML头基href=' %=基路径% ' rel='外部无跟随' rel='外部无跟随' title JSON交互测试/title脚本类型=' text/JAVAScript ' src=' http : $ { page context。请求。上下文路径}/js/jquery-1。4 .4 .量滴js /脚本脚本类型='text/javascript' //请求的是json,输出的是json函数reuqestJson(){ $ .ajax({ type:'post ',URL : ' $ { page context。请求。上下文路径}/请求JSON。动作',内容类型: '应用/JSON;charset=utf-8 ',//数据格式是json串,商品信息数据:“{ name”:手机,' price':999} ',success:function(数据){//返回json结果警报(数据);} });}/脚本/头体输入类型=' button ' onclick=' reuqestJson()' value='请求的是json,输出的是JSON '/body/html 4。1 .2控制器

包裹cn。edu。hpu。SSM。控制器;导入组织。弹簧框架。刻板印象。控制器;导入组织。弹簧框架。网络。绑定。注释。RequestBody导入组织。弹簧框架。网络。绑定。注释。请求映射;导入组织。弹簧框架。网络。绑定。注释。反应体;导入cn。edu。hpu。SSM。阿宝。自定义项目;//json交互测试@控制器公共类JsonText { //请求json(商品信息),输出json(商品信息)//@RequestBody将请求的商品信息的json串转成项目自定义对象//@ResponseBody将项目自定义转成json格式输出@ request mapping('/request JSON ')public @ response body items自定义request JSON(@ request body items自定义项){//@ response body将项目自定义转成json格式输出返回itemsCustom} } 4.1.3测试结果

4.2输入键/值,输出是json串

4.2.1jsp页面

使用jquery的创建交互式、快速动态网页应用的网页开发技术提交密钥/值串,对输出的json结果进行解析。

“% @”页面语言=“Java”导入=“Java”。乌提尔。*“页面编码=”utf-8“% % String path=request。getcontextpath();字符串基本路径=请求。getscheme()' ://'请求。getservername()“:”请求。getserverport()“path ”/;% !DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' HTML head base href=' %=base path % ' rel=' external no follow ' rel=' external no follow ' meta http-equiv=' Content-Type ' Content=' text/HTML;charset=UTF-8' titlejson交互测试/title脚本类型=' text/JAVAScript ' src=' http : $ { page context。请求。上下文路径}/js/jquery-1。4 .4 .量滴js /脚本脚本类型='text/javascript' //请求是键/值,输出是json函数responseJson(){ $ .ajax({ type:'post ',URL : ' $ { page context。请求。上下文路径}/响应JSON。操作',//请求的是键/值,这里不需要指定contentType,因为默认就是密钥/值类型//contentType: '应用程序/JSON;charset=utf-8 ',//数据格式是json串,商品信息"数据: "名称=手机价格=999 ',成功:功能(数据){//返回json结果警报(数据);} });}/脚本/头体输入类型=' button ' onclick=' request JSON()' value='请求的是键/值,输出的是JSON '/body/html 4。2 .2控制器

包裹cn。edu。hpu。SSM。控制器;导入组织。弹簧框架。刻板印象。控制器;导入组织。弹簧框架。网络。绑定。注释。RequestBody导入组织。弹簧框架。网络。绑定。注释。请求映射;导入组织。弹簧框架。网络。绑定。注释。反应体;导入cn。edu。hpu。SSM。阿宝。自定义项目;//json交互测试@控制器公共类JsonText { //请求键/值(商品信息),输出json(商品信息)@请求映射('/response JSON ')public @ response body items自定义响应JSON(items自定义项自定义){//@ response body将项目自定义转成json格式输出System.out.println('前台传过来得商品名: '物品定制。getname());返回itemsCustom} } 4.2.3测试

后台控制台输出了'前台传过来的商品名:手机,且查看超文本传送协议(超文本传输协议的缩写)数据可以看到json数据的反馈。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!

版权声明:springmvc实现json交互-requestBody和responseBody是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。