springMVC实现JSON交互

1、 为什么要进行JSON数据交互
JSON 数据格式在接口调用中、html页面中比较常用。
JSON格式比较简单,解析比较方便。
比如:webservice接口、传输JSON数据。

2、springMVC进行JSON交互
这里写图片描述

1、 请求JSON、输出JSON,要求请求的是JSON串,需要在前端页面将请求内容转成JSON,不太方便。
2、 请求key/value、输出JSON。此方法比较常用。

3、 环境准备
3.1加载JSON的jar包
springMVC中使用Jackson的包进行JSON转换(@requestBody和@responseBody使用下面的包进行JSON转换),如下:
这里写图片描述

3.2 配置JSON转换器
在注解适配器中加入messageConverters

<!-- 注解适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters"></property>
    <list>
        <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
        </list>
    </bean>

注意:如果使用<mvc:annotation-driven/>则不用定义上边的内容。

4、 JSON交互测试
4.1输入的是JSON串,输出是JSON串
JSP页面
使用Jquery的ajax提交JSON串,对是输出的JSON结果进行解析。

<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>  
    <script type="text/javascript">
    //请求的JSON,输出JSON
    function requestJson(){
        $.ajax({
            type:'post',
            url:'requestJson.action',
            contentType:'application/json;charset=utf-8',
            //数据格式是JSON串,商品信息
            data:'{"name":"手机","price":999}',
            success:function(){//返回JSON结果
                alert(data .name);
            }
        });
    }
</script>
<input type="button" onclick="requestJson()" value="请求的JSON,输出JSON"/>
     <input type="button" onclick="responseJson()" value="请求key/value,输出JSON"/>

Controller

//请求JSON(商品信息),输出JSON(商品信息)
    //@RequestBody将请求的商品信息的JSON串转成itemsCustom对象
    //@ResponseBody将itemsCustom对象转换成JSON输出
    @RequestMapping("/requestJson");
    public @ResponseBody ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom){

        //@ResponseBody将itemsCustom转成JSON输出
        return itemsCustom;
    }

4.2输入key/value,输出是JSON串

JSP页面
使用Jquery的ajax提交key/value串,对是输出的JSON结果进行解析。
function responseJson(){
     $.ajax({
            type:'post',
            url:'responseJson.action',
            //请求是key/value这里不需要contentType,因为默认就是key/value类型
            //contentType:'application/json;charset=utf-8',
            //数据格式是JSON串,商品信息
            data:'name=手机&price=999',
            success:function(){//返回JSON结果
                alert(data .name);
            }
        });

    }

Controller

//请求key/value(商品信息),输出JSON(商品信息)
    @RequestMapping("/responseJson");
    public @ResponseBody ItemsCustom responseJson(ItemsCustom itemsCustom){

        //@ResponseBody将itemsCustom转成JSON输出
        return itemsCustom;
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值