zoukankan      html  css  js  c++  java
  • 8--json交互

    8.1 为什么要进行json数据交互

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

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

    8.2      springmvc进行json交互

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

    2、请求key/value、输出json。此方法比较常用。

    8.3 环境准备

    8.3.1 加载json转的jar包

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

    1.  @RequestBody  作用:

    @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上

     本例子应用:@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象

    2.  @ResponseBody作用:

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

     本例子应用:@ResponseBody注解实现将controller方法返回对象转换为json响应给客户端

    8.3.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 /> 则不用定义上边的内容。

    8.4 json交互测试 

    8.4.1  输入json串,输出是json串

    1. jsp页面   使用jquery的ajax提交json串,对输出的json结果进行解析。

    8.4.2  请求key/value,响应json实现:

    表单默认请求application/x-www-form-urlencoded格式的数据即key/value,通常有post和get两种方法,响应json数据是为了方便客户端处理,实现如下:

    引入 js:

    <script type="text/javascript"

    src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script>

    <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript">
    //请求json,输出是json
    function requestJson(){    
        $.ajax({
            type:'post',
            url:'${pageContext.request.contextPath }/requestJson.action',
            contentType:'application/json;charset=utf-8',
            //数据格式是json串,商品信息
            data:'{"name":"手机","price":999}',
            success:function(data){//返回json结果
                alert(data);
            }        
        });    
    }
    //请求key/value,输出是json
    function responseJson(){    
        $.ajax({
            type:'post',
            url:'${pageContext.request.contextPath }/responseJson.action',
            //请求是key/value这里不需要指定contentType,因为默认就 是key/value类型
            //contentType:'application/json;charset=utf-8',
            //数据格式是json串,商品信息
            data:'name=手机&price=999',
            success:function(data){//返回json结果
                alert(data.name);
            }        
        });    
    }
    </script>
    </head>
    <body>
    <input type="button" onclick="requestJson()" value="请求json,输出是json"/>
    <input type="button" onclick="responseJson()" value="请求key/value,输出是json"/>
    </body>
    </html>
    @Controller
    public class JsonTest {
        
        //请求json串(商品信息),输出json(商品信息)
        //@RequestBody将请求的商品信息的json串转成itemsCustom对象
        //@ResponseBody将itemsCustom转成json输出
        @RequestMapping("/requestJson")
        public @ResponseBody ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom){
            
            //@ResponseBody将itemsCustom转成json输出
            return itemsCustom;
        }
        
        //请求key/value,输出json
        @RequestMapping("/responseJson")
        public @ResponseBody ItemsCustom responseJson(ItemsCustom itemsCustom){
            
            //@ResponseBody将itemsCustom转成json输出
            return itemsCustom;
        }
    
    }

    请求的数据是json格式                请求的数据是标准的key/value格式。(常用)

    在平凡中坚持前行,总有一天,会遇见优秀的自己
  • 相关阅读:
    oracle 数据库服务名怎么查
    vmware vsphere 6.5
    vSphere虚拟化之ESXi的安装及部署
    ArcMap中无法添加ArcGIS Online底图的诊断方法
    ArcGIS中字段计算器(高级计算VBScript、Python)
    Bad habits : Putting NOLOCK everywhere
    Understanding the Impact of NOLOCK and WITH NOLOCK Table Hints in SQL Server
    with(nolock) or (nolock)
    What is “with (nolock)” in SQL Server?
    Changing SQL Server Collation After Installation
  • 原文地址:https://www.cnblogs.com/mao-19/p/5702368.html
Copyright © 2011-2022 走看看