JavaScript中對(duì)JSON對(duì)象的基本操作示例
JSON對(duì)象
1、對(duì)象的屬性:
對(duì)象的屬性是有鍵值對(duì)組成的,其中key為一個(gè)字符串,value可以為任何的Javascript對(duì)象。
//使用[]設(shè)置和獲取對(duì)象的屬性 var obj = new Object(); obj["www.dbjr.com.cn"] = "http://www.dbjr.com.cn"; alert(obj["www.dbjr.com.cn"]);
2、變量既是屬性:
Javascript引擎在初始化時(shí)會(huì)構(gòu)建一個(gè)全局對(duì)象,所有的變量都是這個(gè)全局對(duì)象的屬性。為了引用這個(gè)全局對(duì)象,可以再頂級(jí)作用域中這樣獲取:
var global = this;
在Javascript中,任何獨(dú)立的函數(shù)或者變量都屬于這個(gè)對(duì)象的屬性,即:
function test(){}
相當(dāng)于:
window.test = function(){}
3、使用對(duì)象:
聲明對(duì)象的三種方式:
① 通過(guò)new操作符創(chuàng)建一個(gè)Object對(duì)象,然后動(dòng)態(tài)地添加屬性,從無(wú)到有構(gòu)造一個(gè)對(duì)象
② 定義對(duì)象的類(lèi)圓形,然后使用new操作符來(lái)批量構(gòu)造新的對(duì)象
//創(chuàng)建一個(gè)對(duì)象 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構(gòu)造對(duì)象
JSON即Javascript對(duì)象表示方法(Javascript Object Notation),也就是通過(guò)字面量來(lái)表示一個(gè)對(duì)象:
//JSON形式創(chuàng)建一個(gè)對(duì)象 var arthinking = { username : "Jason", password : "123", favorite : { sports : "football", music : "Guitar" } } alert(arthinking.username); alert(arthinking.favorite.sports);
解析由服務(wù)器返回的JSON格式數(shù)據(jù)
單個(gè)JSON對(duì)象:
[{a:'1',b'2'},{a:'3',b'4'}]
多個(gè)JSON對(duì)象:
{ "usergroups":[{a:'001',b:'arthinking'},a:'002',b:'Jason'}], "groups":[{c:'001',d:'IT宅'}] }
可以根據(jù)這種格式先從后臺(tái)封裝好需要傳遞的數(shù)據(jù),前臺(tái)獲取到后可以這樣解析獲取數(shù)據(jù):
//假設(shè)response.responseText為返回的JSON字符串 //可以使用eval()函數(shù)把JSON字符串轉(zhuǎn)換成Javascript語(yǔ)句 //再通過(guò)”.”導(dǎo)航獲取具體屬性,length屬性為對(duì)象的長(zhǎng)度 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); } } }
相關(guān)文章
JavaScript實(shí)現(xiàn)快速排序(自已編寫(xiě))
用到j(luò)avascript的排序一組數(shù)字,js沒(méi)有直接的數(shù)字比較的函數(shù)可以調(diào)用,所以自己寫(xiě)了一個(gè)快速排序,需要的朋友可以了解下2012-12-12js setTimeout 常見(jiàn)問(wèn)題小結(jié)
主要包括this指向問(wèn)題、向setTimeout傳入?yún)?shù)等相關(guān)問(wèn)題,下面與大家分享下以上問(wèn)題的解決方法,感興趣的朋友可以參考下2013-08-08超詳細(xì)的JavaScript基本語(yǔ)法規(guī)則
這篇文章主要介紹了JavaScript基本語(yǔ)法規(guī)則,保姆級(jí)的詳細(xì)教程,萬(wàn)字長(zhǎng)文詳細(xì)的列出了JavaScript的各種語(yǔ)法,建議收藏系列,希望可以有所幫助2021-08-08javaScript面向?qū)ο罄^承方法經(jīng)典實(shí)現(xiàn)
很多人都說(shuō)JavaScript不能算是面向?qū)ο蟮淖兂烧Z(yǔ)言。但是JavaScript的類(lèi)型非常松散,也沒(méi)有編譯器,但是我們可以模仿著其他語(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮姆绞絹?lái)實(shí)現(xiàn)JavaScript的面向編程2013-08-08IE6瀏覽器下resize事件被執(zhí)行了多次解決方法
在IE瀏覽器下,一次resize事件被執(zhí)行了多次,這是IE6和IE7的一個(gè)比較廣為認(rèn)知的問(wèn)題,這個(gè)問(wèn)題在這兩個(gè)版本的瀏覽器中表現(xiàn)有所不同,通常IE6下會(huì)比IE7下更為糟糕,接下來(lái)將介紹解決方法,需要的朋友可以參考下2012-12-12