JSON对象
1、对象的属性:
对象的属性是有键值对组成的,其中key为一个字符串,value可以为任何的Javascript对象。
//使用[]设置和获取对象的属性 var obj = new Object(); obj["www.jb51.net"] = "http://www.jb51.net"; alert(obj["www.jb51.net"]);
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格式数据
单个JSON对象:
[{a:'1',b'2'},{a:'3',b'4'}]
多个JSON对象:
{ "usergroups":[{a:'001',b:'arthinking'},a:'002',b:'Jason'}], "groups":[{c:'001',d:'IT宅'}] }
可以根据这种格式先从后台封装好需要传递的数据,前台获取到后可以这样解析获取数据:
//假设response.responseText为返回的JSON字符串 //可以使用eval()函数把JSON字符串转换成Javascript语句 //再通过”.”导航获取具体属性,length属性为对象的长度 var obj = eval( "(" + response.responseText + ")" ); for(var i = 0; i<obj.usergroups.length; i++){ var groupid = obj.usergroups[i].a; var usergroup=obj.groups; for(var j=0; j<usergroup.length; j++){ if(usergroup[j].c == groupid){ alert(groupid); } } }