Ajax和JSON
2015-09-08 22:15
671 查看
Ajax和JSON
Ajax
什么是Ajax
Ajax (Asynchronous JavaScript and Xml)是一种能够发送异步请求的技术,技术核心对象XMLHttpRequest原理
浏览器加载完页面后,可以在不销毁当前页面的前提下,支持分出一部分资源从远程获取数据,并通过脚本语言返回的数据追加到原有页面中。Ajax实现步骤
1.创建xhr对象var xhr = null; if(XMLHttpRequest){ xhr = new XMLHttpRequest(); } esle { xhr = ActiveXObject('Microsoft.XMLHttp'); }
2.open方法创建请求
//Get请求 xhr.open('get','url?name=value',true) //Post请求 xhr.open('post','url',true);
3.设置回调事件
xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200){ alert(xhr.responseText); } };
4.send方法发送请求
//Get请求 xhr.send(null); //Post请求 xhr.setRequestHeader('content-type','application/x-www-form-urlencoded'); xhr.send('name=value');
顺序1 -> 3 -> 2 -> 4 可以更好的兼容浏览器
当发送get send时,最好是在send()中加上null,达到兼容浏览器的作用
Get传中文(慎用),修改conf文件夹下servlet.xml文件夹中conector节点添加URIEncoding=”UTF-8”属性即可。
JSON
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。一种与具体的开发语言,平台无关的表达数据传输的语法格式。
作用:用于规范不同平台或客户端与服务器端数据往来的格式。
语法格式
{ 属性名:属性值,属性名:属性值 … }
可以使用 { } [ ] : , “” 字符。以{开始时,是在用JSON描述一个对象,以[开始时是在用JSON描述一个数组。虽然JavaScript也用这两种符合来表达对象和数组。
1.属性值可以是 string,number,boolean(true,false),null,object。
**2.属性名必须使用双引号引起来,属性值如果是字符串,必须使用双引号括起来。
但是在JavaScript语言中,对象就没有这么严格的规定,属性可以不引,或单引,或双引。属性值可以单引可以双引。**
3.虽然JSON是网络中传输的“字符串”的格式,但是符合JSON格式的字符串到客户端或服务器端时,客户端或服务器端针对这段符合JSON格式的字符串进行操作,所以都应该完成从JSON字符串到具体语言对象的转换。
如果当前JSON字符串到达的是服务器,那么就要完成从JSON到Java对象的转换。
如果当前JSON字符串到达的是客户端,那么就要完成从JSON到JavaScript对象的转换。
JavaScript对象与符合JSON格式的字符串的转换
使用浏览器内原生的JSON对象的stringify()方法和parse()方法stringify():将JavaScript对象 -> JSON字符串
var obj = {name:"Luffly",age:17}; var str = JSON.stringify(obj);
parse():将JSON字符串 -> JavaScript对象
var str = '{"name":"Luffy","age":17}'; var obj = JSON.parse(str);
json.js
将JavaScript对象 -> JSON字符串
var obj = {name:"Luffy",age:17}; var str = obj.toJSONString();
将JSON字符串 -> JavaScript对象
var str = '{"name":"Lufy","age":17}'; var obj = str.parseJSON();
Java对象与符合JSON格式的字符串的转换
将Java对象 -> JSON字符串Friend f = new Friend("Luffy",17); JSONObject obj = JSONObject.fromObject(f); String str = obj.toString();
将JSON字符串 -> Java对象
String str = "{\"age\":17,\"name\":\"Luffy\"}"; JSONObject obj = JSONObject.fromObject(str); Friend f = (Friend) obj.toBean(obj,Friend.class);
将Java对象数组 -> JSON字符串
List<Friend> fs = new ArrayList<Friend>(); fs.add(new Friend("Luffy", 17)); fs.add(new Friend("Tom", 20)); JSONArray obj = JSONArray.fromObject(fs); String str = obj.toString();
将JSON字符串 -> Java对象数组
String str = "[{\"age\":17,\"name\":\"Luffy\"},{\"age\":20,\"name\":\"Tom\"}]"; JSONArray obj = JSONArray.fromObject(str); List<Friend> fs = (List<Friend>) obj.toCollection(obj,Friend.class);
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- JavaScript拆分字符串时产生空字符的原因
- IE8开发人员工具教程(二)
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- 再谈Jquery Ajax方法传递到action(补充)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- Dom在ajax技术中的作用说明
- ruby实现的一个异步文件下载HttpServer实例
- C#异步绑定数据实现方法
- PowerShell中执行Javascript的方法示例