JSON数据交互(SpringMVC进行json交互)

最近在使用json数据,现将这几天的使用心得整理如下:
一:JSON定义

json (javascript object notation)
    (1)json是什么?
        是一种轻量级的数据交换标准。
        1)数据交换
           将数据转换成一种与平台无关的数据格式并传递给接收方。
           比如:服务器端有一个order对象,要发送给浏览器,可以将order对象表示的数据转换成
            一个xml文档然后发送给浏览器,在浏览器端,再去解析这个xml文档就可以获得order信息
            <order>
                <name>order001</name>
                <price>100</price>
                ....
            </order>
    也可以将order对象表示的数据转换成一个json字符串{'name':'order001','price':100,....}
       然后发送给浏览器,在浏览器端,可以很方便地将这个
       json字符串转换成一个js对象,然后获得order信息。
    2)轻量级 
        相对于xml作为数据交换标准,json所需要的文档大小更小,解析的速度更快。
    (2)json的语法          www.json.org
        1)表示一个对象
            {属性名称1:属性值1,属性名称2:属性值2...}
          注意:
             a,属性名称要用引号(单引号或者双引号)括起来。
             b,属性值可以是number,string,boolean(true/false),null,object
             c,如果属性值是string,要用引号括起来。
        2)表示一个对象组成的数组[{},{},{}...]
    (3)使用json编写ajax应用程序
        1) java对象转换成json字符串。
            或者java对象组成的集合转换成json字符串。
            使用json提供的官方的工具JSONObject,JSONArray
        2)json字符串转换成javascript对象
            使用一些js框架提供的函数,比如prototype提供的evalJSON函数。
    java对象转换为js对象    java对象转换为JSON对象  JSON对象转换为js对象

        prototype.js提供了很多有用的函数,比如:
          $(id): document.getElementById(id)   
          $F(id): $(id).value
    $(id1,id2,id3....): 分别查找id为id1,id2,id3...的节点,然后返回一个由这些节点组成的数组。
          strip(): 除掉字符串两端的空格。
          evalJSON():将json字符串转换成相应的js对象或者js对象组成的数组。

二:why要进行json数据交互
json数据格式在html页面中、接口调用中使用比较多,它的格式比较简单,解析相对方便。
比如:webservice接口,传输json数据。
三:SpringMVC进行json交互
1:客户端请求发送的数据可分为两种:json字符串和key/value数据。
2:json字符串需要指定contentType=application/json
key/value数据contentType=application/x-www-form-urlencoded
如图:
json字符串和key/value数据的对比
3:若客户端请求的是json字符串,@RequestBody可以将json串转成java对象,@ResponseBody也可以将java对象转成json串输出; 若请求的是key/value数据,不需要@RequestBody将json串转成java对象,@ResponseBody将java对象转成json串输出。
如图:请求json字符串和key/value对比图

综述:(1)、请求json、输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便。
(2)、请求key/value、输出json。此方法比较常用。
三:加载json转的jar包
springmvc中使用jackson的包进行json转换(@requestBody和@responseBody使用下边的包进行json转),如图:
这里写图片描述

四:配置JSON转换器
在SpringMVC.xml中的注解适配器中加入messageConverters

messageConverters

注意:如果使用**

<mvc:annotation-driven conversion-service="conversionService"
    validator="validator"></mvc:annotation-driven>

**,则不用定义上边的内容。
五:json交互测试(略)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章