JSON综合分析

来源:互联网 发布:python unicode 编辑:程序博客网 时间:2024/05/17 23:02
JSON

JSON即Javascript对象表示法,是一种现在主流的数据交换格式。其特点:
1、简单。
只有4种类型的符号 [ ] { } : ,就可以表示任何种类的复杂对象或数组。
2、易读。
机器解析还是人的阅读都能够从这种格式中快速找到所需要的信息。


JSON原理


JSON作为数据交换的格式与平台种类是无关的。不管服务器使用Java语言、C#语言或其他语言都能够从这种字符串格式转换为具体语言的对象。同样,任何语言也都能将自己的对象转换为JSON的字符串。


JSON数据交换原理


如果是客户端请求数据,那么服务器端就将Java对象先转换成JSON字符串,经响应把字符串传到客户端之后,客户端就会接收到这个转换结果,但JavaScript要求把这个字符串变成对象格式才更方便访问,所以在客户端的JavaScript代码中又需要将这个JSON字符串变成JavaScript能够识别的对象,这样就完成了从服务器端的对象到客户端对象的整个转变过程。



同理,如果在客户端填写了数据后想提交给服务器,首先是将客户端数据构造成一个JSON对象字符串,经网络传递到服务器端,服务器端再依据转换规则将JSON字符串变成Java识别的对象。


Java对象转换成JSON


在服务器端对象的转换过程可以使用官方提供的API:JSONObject与JSONArray类、fromObject方法
分别处理对象和数组的转换类型。

JSONObject obj = JSONObject.fromObject(bean);String jsonStr  = obj.toString(); JSONArray jsonArr = JSONArray.fromObject(beans);String jsonStr = jsonArr.toString();

使用JSON前的准备


其中json-lib.jar为核心包,其他为依赖包。


IE浏览器缓存问题

IE浏览器提供的AJAX对象,在发送GET请求时,会先查看是否访问过该地址,如果改地址已经访问过,那么浏览器不再发送请求;
表现在页面终究是,第一次点击某功能会得到数据,但是如果多次反复点击想获取最新数据时页面不会有任何变化,因浏览器发现地址相同而拒绝发出请求;
但这种页面表现只出现在IE浏览器中,Chrom浏览器和Firefox浏览器都能够实现数据的获取和页面的刷新。


要想解决缓存问题,就需要欺骗浏览器,让它认为每次请求的地址是不一样的。构建不同的URL需要添加上一个随机数。代码格式如下:

xhr.open(‘get’,’actiion.do?’+Math.random() , true );xhr.send(null);


JQuery对Ajax支持


JQuery为优化Ajax代码,提供了四种特有的函数支持,分别是:
 $.load()
 $.get()
 $.post()
 $.ajax()


load( ) 函数
作用:将服务器返回的数据字节加载到符合要求的节点之上;
用法:$obj.load ( 请求地址,请求参数);
请求参数格式:
“username=tom & age=22”
{‘username’:‘tom’,‘age’:22 }

有请求参数时,load方法发送POST请求,否则发送GET请求

 $.get/post( ) 函数
 作用:发送GET/POST类型的请求
 用法:$.get/post(
      请求地址?请求参数,
       function(data){},//回调函数
              服务器返回的数据类型);

$.ajax( ) 函数

作用:发送Ajax请求(各种类型)

用法:$.ajax({
           url:"请求地址" , 
  data:"请求参数",
           type:"请求类型" , 
      dateType:"服务器返回的数据类型",
           success:function(data){},//成功的回调函数
           error:function(){}//服务器出错后的处理逻辑       });







2 0
原创粉丝点击