<强> 1。为什么要进行json数据交互强>
json数据格式在接口调用中,html页面中较常用,json格式比较简单,解析还比较方便。
比如:webservice接口,传输json数据。
<强> 2. springmvc进行json交互强>
(1)请求json、输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便。
(2)请求键/值,输出json。此方法比较常用。
<强> 3。环境准备强>
springmvc中使用杰克逊的包进行json转换(@requestBody和@responseBody使用下边的包进行json转),如下:
jackson-core-asl-1.9.11.jar
jackson-mapper-asl-1.9.11.jar
@RequestBody作用:
@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到控制器方法的参数上。
本例子应用:
@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象
@ResponseBody作用:
该注解用于将控制器的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json、xml等,通过响应响应给客户端
本例子应用:
@ResponseBody注解实现将控制器方法返回对象转换为json响应给客户端
在注解适配器中加入messageconverter
& lt; !——注解适配器——比; & lt; bean类=皁rg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”比; & lt;属性名=癿essageconverter”比; & lt; list> & lt; bean类=" org.springframework.http.converter.json.MappingJacksonHttpMessageConverter "祝辞& lt;/bean> & lt;/list> & lt;/property> & lt;/bean>>之前注意:如果使用& lt; mvc:注解驱动/比;则不用定义上边的内容。
<强> 4. json交互测试强>
使用jquery的ajax提交json串,对输出的json结果进行解析。
使用jduery别忘记引入jquery-1.4.4.min.js
% @ & lt;页面语言=癹ava”=癹ava.util进口。*”pageEncoding=" utf - 8 " %比; & lt; % 字符串路径=request.getContextPath (); 字符串basePath=request.getScheme () +”://? request.getServerName () +“:”+ request.getServerPort() +路径“/? %比; & lt; !DOCTYPE HTML公共”——//W3C//DTD HTML 4.01过渡//EN”比; & lt; html> & lt; head> & lt;基地href=" https://www.yisu.com/zixun/" rel=巴獠縩ofollow”rel=巴獠縩ofollow”比; & lt; title> json交互测试& lt;/title> & lt;脚本type=" text/javascript " src=" https://www.yisu.com/zixun/$ {pageContext.request.contextPath}/js/jquery-1.4.4.min.js”祝辞& lt;/script> & lt;脚本type=" text/javascript祝辞//请求的是json,输出的是json 函数reuqestJson () { . ajax({美元 类型:“文章”, url:“$ {pageContext.request。contextPath}/requestJson.action’, contentType:“application/json; charset=utf - 8”,//数据格式是json串,商品信息 数据:“{”名称”:“手机”,“价格”:999}”, 成功:功能(数据){//返回json结果 警报(数据); } }); } & lt;/script> & lt;/head> & lt; body> & lt;输入类型="按钮" value=" https://www.yisu.com/zixun/请求的是json,输出的是json”/比; & lt;/body> & lt;/html> >之前
包cn.edu.hpu.ssm.controller; 进口org.springframework.stereotype.Controller; 进口org.springframework.web.bind.annotation.RequestBody; 进口org.springframework.web.bind.annotation.RequestMapping; 进口org.springframework.web.bind.annotation.ResponseBody; 进口cn.edu.hpu.ssm.po.ItemsCustom;//json交互测试 @ controller 公开课JsonText {//请求json(商品信息),输出json(商品信息)//@RequestBody将请求的商品信息的json串转成itemsCustom对象//@ResponseBody将itemsCustom转成json格式输出 @RequestMapping ("/requestJson”) 公共@ResponseBody ItemsCustom requestJson (@RequestBody ItemsCustom ItemsCustom) {//@ResponseBody将itemsCustom转成json格式输出 返回itemsCustom; } } >之前
springmvc实现json交互-requestBody和responseBody