JSON是Javascript中对象的字面值,是对象的表示方法。Javascript对象其实就是一个属性的集合。
1、对象的属性:
对象的属性是有键值对组成的,其中key为一个字符串,value可以为任何的Javascript对象。
//使用[]设置和获取对象的属性
var obj = new Object();
obj[“www.itzhai.com”] = “http://www.itzhai.com”;
alert(obj[“www.itzhai.com”]);
2、变量既是属性:
Javascript引擎在初始化时会构建一个全局对象,所有的变量都是这个全局对象的属性。为了引用这个全局对象,可以再顶级作用域中这样获取:
var global = this;
在Javascript中,任何独立的函数或者变量都属于这个对象的属性,即:
function test(){}
相当于:
window.test = function(){}
3、使用对象:
声明对象的三种方式:
① 通过new操作符创建一个Object对象,然后动态地添加属性,从无到有构造一个对象
② 定义对象的类圆形,然后使用new操作符来批量构造新的对象
//创建一个对象
function User(username, password){
this.username = username;
this.password = password;
this.getUsername = function(){
return this.username;
}
this.getPassword = function(){
return this.password;
}
}
var arthinking = new User(“Jason”, “123”);
alert(arthinking.getUsername());
alert(arthinking.getPassword());
③ 使用JSON构造对象
JSON即Javascript对象表示方法(Javascript Object Notation),也就是通过字面量来表示一个对象:
//JSON形式创建一个对象
var arthinking = {
username : “Jason”,
password : “123”,
favorite : {
sports : “football”,
music : “Guitar”
}
}
alert(arthinking.username);
alert(arthinking.favorite.sports);
使用JSON的优点:
这种写法比较简洁,大多数有经验的Javascript程序员都更倾向于这种写法,jQuery、ExtJS都大量使用了JSON。
JSON格式数据本身是可以递归的,可以表达任意复杂的数据类型。
JSON的写法很简单:用花括号括起来的键值对,键值对通过冒号隔开,值可以是任意的Javascript对象。
作为一种前端和服务器端数据交换的格式,前端通过AJAX发送JSOn对象到服务器,服务器端通过脚本对JSON进行解析,还原成服务器端的对象,进行处理,然后在通过JSON数据形式返回给客户端信息。这样使用同一种数据格式,可以降低出错率。
使用JSON数据作为函数的返回值:
JSON的另一个应用场景是当一个函数拥有多个返回值时,可以不用按照传统面向对象编程那样返回对象,而是直接返回JSON格式的数据即可。
//使用JSON作为函数的返回值
function position(left, top){
this.left = left;
this.top = top;
return {
left : this.left,
top : this.top
};
}
alert(position(10, 10));
可以这样逐个循环获取JSON中的数据:
var json = position(10, 10);
for(var key in json){
alert(key +" : " + json[key]);
}