SpringMVC 实现Json交互

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wrs120/article/details/79729194

一:为什么要进行Json数据交互

  json格式数据较简单,容易解析(常用在接口调用中、html页面)

二:SpringMVC 进行 Json交互的过程

  其中请求为json串时,在前端页面中需要将请求的内容转为json,不太方便
  最终都输出json数据,是为了在前端页面方便对请求结果进行解析

三:环境准备

  引json解析所需jar包,springmvc中使用jackson的包进行json转换(@requestBody和@responseBody使用下边的包进行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>

  如果使用 则不用定义上边的内容

五:Json交互过程详解

  1.输入json串,输出json串

    .jsp页面

//请求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);
            }
        });
    }

    1> 要设置contentType,默认是key/value
    2> 输入数据格式是json格式

    controller类

//请求jason,输出json
    @RequestMapping("/requestJson")
    public @ResponseBody ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom){
        return itemsCustom;
    }

    1> @RequestBody表明将输入解析为json
    2> @ResponseBody表明将输入解析为json


  2.输入key/value,输出json串

    .jsp页面

    //请求key/value,输出json
    function responseJson()
    {
        $.ajax({
            type:'post',
            url:'${pageContext.request.contextPath}/responseJson.action',
            /* contentType:'application/json;charset=utf-8', */
            //数据格式是key/value
            data:'name=手机 & price=999',
            success:function(data){
                //返回json结果
                alert(data.name);
            }
        });
    }

    controller类

    @RequestMapping("/responseJson")
    public @ResponseBody ItemsCustom responsetJson(ItemsCustom itemsCustom){        
        return itemsCustom;
    }

    1> 输入参数不再用@RequestBody解析


主要用到@RequestBody和@ResponseBody两个注解

猜你喜欢

转载自blog.csdn.net/wrs120/article/details/79729194
今日推荐