JSON
JSON(JavaScript Object Notation)是一种轻量级的文本数据交换格式;是存储和交换文本信息的语法;它比XML更小、更快、更容易解析;独立于语言:使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台,支持多种不同的编程语言;具有自我描述性,更容易理解;文本格式再语法上与创建JavaScript对象的代码相同。
1、JSON语法规则
数据再 名称/值对 中,数据由逗号分隔;{ } 保存对象,[] 保存数组
2、 JSON 名称/值对
格式:名称/值对 例:“name”:“zhangsan”
3、JSON值
JSON值可以是:数字、字符串、逻辑值、数组、对象、null。
4、创建JSON对象
格式:var 对象名 = {键:值,...};
例:var obj = {"name":"zhangsan","age":18};
key必须是字符串,value的值可以是:数字、字符串、逻辑值、数组、对象、null。
key和value中必须使用 冒号(:)分割;每个键值对之间用逗号(,)隔开。
访问对象值
两种访问方式:
1、由点(.)来访问对象的值。
2、也可以是由中括号([])来访问对象的值。
例:
1: document.write(obj.name);
2: document.write(obj["age"]);
循环对象
使用for-in来循环对象的属性
例:
for( o in obj){
document.write(obj[o]);
}
嵌套JSON对象
var user = {
"name": "李四",
"age": 18,
"sex": "女",
"account": {
"taobao": "t123",
"jingdong": "jd123",
"baidu": "b123"
}
}
// 遍历
document.write(user.account.taobao + "<br/>");
for(u in user.account) {
document.write(user.account[u] + "<br />");
}
JSON数组
JSON数组值必须是合法的JSON数据类型(子符串、数字、对象、数组、布尔值、null)
数组作为对象
格式:
例:var obj = [“TianMao”,“JingDong”,“TaoBao”];
对象中的数组
var user = {
"name":"zhangsan",
"age":18,
"hobby":["swimming","running"]
}
遍历数组
for(var i=0;i<user.hobby.length;i++){
document.write(user.hobby[i]+"<br>");
}
修改数组中的值
user.hobby[0] = "sing";
删除数组中值
// 指定删除的元素
1、delete user.hobby[0];
// 默认删除最后一个
2、user.hobby.pop();
JSON数据转换为JavaScript对象
语法:parse(text , [reviver])
参数说明:text:必选,一个有效的JSON字符串;
reviver:可选,一个转换结果的函数,将对象的每个成员调用此函数。
例:
var obj = JSON.parse('{"name":"zhangsan","age":18}');
document.write(obj.name+":"+obj.age);
将JSON文本转换为JavaScript对象
eval()函数使用的是JavaScript编译器,可解析JSON文本,然年后生成JavaScript对象。必须将文本包围在括号里。
var txt='{"user":['+
'{"account":"admin","pwd":"admin"},'+
'{"account":"user","pwd":"user"}]
}';
var obj = eval("("+txt+")");
document.write(obj.user[0].account);
jQuery
jQuery对象
jQuery对象是通过jQuery(
(
)
)
包
装
D
O
M
对
象
后
产
生
的
对
象
;
j
Q
u
e
r
y
对
象
是
j
Q
u
e
r
y
是
j
Q
u
e
r
y
对
象
独
有
的
,
如
果
一
个
对
象
是
j
Q
u
e
r
y
对
象
,
那
么
他
就
可
以
使
用
j
Q
u
e
r
y
里
的
方
法
;
j
Q
u
e
r
y
对
象
无
法
使
用
D
O
M
对
象
的
任
何
方
法
,
同
样
D
O
M
也
无
法
使
用
j
Q
u
e
r
y
中
的
任
何
方
法
。
约
定
:
如
果
获
取
的
是
j
Q
u
e
r
y
对
象
,
那
么
要
在
变
量
前
面
加
上
())包装DOM对象后产生的对象;jQuery对象是jQuery是jQuery对象独有的,如果一个对象是jQuery对象,那么他就可以使用jQuery里的方法;jQuery对象无法使用DOM对象的任何方法,同样DOM也无法使用jQuery中的任何方法。 约定:如果获取的是jQuery对象,那么要在变量前面加上
())包装DOM对象后产生的对象;jQuery对象是jQuery是jQuery对象独有的,如果一个对象是jQuery对象,那么他就可以使用jQuery里的方法;jQuery对象无法使用DOM对象的任何方法,同样DOM也无法使用jQuery中的任何方法。约定:如果获取的是jQuery对象,那么要在变量前面加上
例如:var $obj = jQuery 对象
var obj = DOM 对象
jQuery对象转成DOM对象
1、jQuery对象是一个数组对象,可以通过[index]的方法得到对象的DOM对象。
2、使用jQuery中的get(index)方法得到相应的DOM对象。
例:
//Jquery对象转换成DOM对象 通过[index]和get(index)
$(document).ready(function(){
var time = document.getElementById("p1");
// DOM对象转化为JQery对象
var $time = $(time);
// 将jQuery对象转化为DOM对象
var t=$("#p1")[0];
alert(t.innerText);
t=$("#p1").get(0);
});
-----------------------------
<body>
<div id="div1">时间
<p id="p1">昨天</p>
<p id="p2">今天</p>
<p id="p3">明天</p>
</div>
</body>
获取p元素的内容
既可以获取值也可以设置值
1、.html()
2、.text()
ready()
等待DOM元素都加载完毕,类似window.onload()
$(document).ready()和Window.onload区别
1.执行时间
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 ( d o c u m e n t ) . r e a d y ( ) 是 D O M 结 构 绘 制 完 毕 后 就 执 行 , 不 必 等 到 加 载 完 毕 。 2. 编 写 个 数 不 同 w i n d o w . o n l o a d 不 能 同 时 编 写 多 个 , 如 果 有 多 个 w i n d o w . o n l o a d 方 法 , 只 会 执 行 一 个 。 (document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 。 (document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。2.编写个数不同window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个。(document).ready()可以同时编写多个,并且都可以得到执行
3.简写方法
window.onload没有简化写法 。 ( d o c u m e n t ) . r e a d y ( f u n c t i o n ( ) ) 可 以 简 写 成 (document).ready(function(){})可以简写成 (document).ready(function())可以简写成(function(){});
在 Jquery 中,使用的是 ( d o c u m e n t ) . r e a d y ( ) 方 法 。 (document).ready() 方法。 (document).ready()方法。(document).ready() 方法是事件模块中最重要一个函数,可以极大的提高 Web 应用程序的速度。