您的位置:首页 > Web前端 > JavaScript

JSON综合分析

2016-03-15 23:48 239 查看
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(){}
//服务器出错后的处理逻辑
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: