springmvc实现json交互-requestBody和responseBody

  

  

<强> 1。为什么要进行json数据交互

  

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

  

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

  

<强> 2. springmvc进行json交互

  

 springmvc实现json交互-requestBody和responseBody

  

(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