jquery JSON的解析方式
這里首先給出JSON字符串集,字符串集如下:
var data="
{
root:
[
{name:'1',value:'0'},
{name:'6101',value:'西安市'},
{name:'6102',value:'銅川市'},
{name:'6103',value:'寶雞市'},
{name:'6104',value:'咸陽市'},
{name:'6105',value:'渭南市'},
{name:'6106',value:'延安市'},
{name:'6107',value:'漢中市'},
{name:'6108',value:'榆林市'},
{name:'6109',value:'安康市'},
{name:'6110',value:'商洛市'}
]
}";
這里以jquery異步獲取的數(shù)據(jù)類型——json對象和字符串為依據(jù),分別介紹兩種方式獲取到的結(jié)果處理方式。
1.對于服務(wù)器返回的JSON字符串,如果jquery異步請求沒做類型說明,或者以字符串方式接受,那么需要做一次對象化處理,方式不是太麻煩,就是將該字符串放于eval()中執(zhí)行一次。這種方式也適合以普通javascipt方式獲取json對象,以下舉例說明:
var dataObj=eval("("+data+")");//轉(zhuǎn)換為json對象
alert(dataObj.root.length);//輸出root的子對象數(shù)量
$.each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}
//輸出每個(gè)root子對象的名稱和值
alert("name:"+item.name+",value:"+item.value);
})
注:對于一般的js生成json對象,只需要將$.each()方法替換為for語句即可,其他不變。
2.對于服務(wù)器返回的JSON字符串,如果jquery異步請求將type(一般為這個(gè)配置屬性)設(shè)為“json”,或者利用$.getJSON()方法獲得服務(wù)器返回,那么就不需要eval()方法了,因?yàn)檫@時(shí)候得到的結(jié)果已經(jīng)是json對象了,只需直接調(diào)用該對象即可,這里以$.getJSON方法為例說明數(shù)據(jù)處理方法:
$.getJSON("http://gaoyusi.blog.163.com/",{param:"gaoyusi"},function(data){
//此處返回的data已經(jīng)是json對象
//以下其他操作同第一種情況
$.each(data.root,function(idx,item){
if(idx==0){
return true;//同countinue,返回false同break
}
alert("name:"+item.name+",value:"+item.value);
});
});
這里特別需要注意的是方式1中的eval()方法是動(dòng)態(tài)執(zhí)行其中字符串(可能是js腳本)的,這樣很容易會(huì)造成系統(tǒng)的安全問題。所以可以采用一些規(guī)避了eval()的第三方客戶端腳本庫,比如JSON in JavaScript就提供了一個(gè)不超過3k的腳本庫。
- Json對象與Json字符串互轉(zhuǎn)(4種轉(zhuǎn)換方式)
- js 將json字符串轉(zhuǎn)換為json對象的方法解析
- js中將字符串轉(zhuǎn)換成json的三種方式
- 解析JSON對象與字符串之間的相互轉(zhuǎn)換
- JS對象與JSON格式數(shù)據(jù)相互轉(zhuǎn)換
- 用jQuery與JSONP輕松解決跨域訪問的問題
- jquery eval解析JSON中的注意點(diǎn)介紹
- JS 將偽數(shù)組轉(zhuǎn)換成數(shù)組的實(shí)現(xiàn)示例
- JavaScript如何將偽數(shù)組轉(zhuǎn)換成數(shù)組?
- JavaScript將數(shù)組轉(zhuǎn)換為鏈表的方法
- js實(shí)現(xiàn)數(shù)組轉(zhuǎn)換成json
- JavaScript將數(shù)組轉(zhuǎn)為對象與JSON對象字符串轉(zhuǎn)數(shù)組方法詳解
相關(guān)文章
jQuery實(shí)現(xiàn)在最后一個(gè)元素之前插入新元素的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)在最后一個(gè)元素之前插入新元素的方法,涉及jquery針對頁面元素的匹配選擇與屬性操作相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
jQuery實(shí)現(xiàn)表格行和列的動(dòng)態(tài)添加與刪除方法【測試可用】
這篇文章主要介紹了jQuery實(shí)現(xiàn)表格行和列的動(dòng)態(tài)添加與刪除方法,涉及jQuery針對頁面元素的動(dòng)態(tài)添加與刪除相關(guān)技巧,非常簡便實(shí)用,需要的朋友可以參考下2016-08-08
基于JQuery的模擬蘋果桌面Dock效果(穩(wěn)定版)
之所以將它命名為穩(wěn)定版,是因?yàn)橹耙呀?jīng)分享了一個(gè)初級版本的,之前的初級版中存在很多bug?,F(xiàn)在經(jīng)過反復(fù)琢磨、實(shí)驗(yàn),修復(fù)了之前版本存在的很多不足之處,就算鼠標(biāo)快速的滑動(dòng)依然表現(xiàn)的很穩(wěn)定2012-10-10
Jquery UI實(shí)現(xiàn)一次拖拽多個(gè)選中的元素操作
這篇文章主要介紹了Jquery UI實(shí)現(xiàn)一次拖拽多個(gè)選中的元素操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
JQuery自適應(yīng)IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
很高興,終于使用jquery實(shí)現(xiàn)了點(diǎn)擊外部鏈接,更改iframe內(nèi)容時(shí),iframe的高度自適應(yīng)問題。2011-03-03
jQuery中通過ajax調(diào)用webservice傳遞數(shù)組參數(shù)的問題實(shí)例詳解
本文通過實(shí)例給大家詳細(xì)介紹jQuery中通過ajax調(diào)用webservice傳遞數(shù)組參數(shù)的相關(guān)資料,需要的朋友可以參考下2016-05-05
jQuery實(shí)現(xiàn)垂直半透明手風(fēng)琴特效代碼分享
這是一款jquery hover抽屜式導(dǎo)航圖片展開收縮切換特效代碼,用戶還可以自定義對應(yīng)幻燈片的標(biāo)題與文字說明,是一款非常實(shí)用的幻燈片特效源碼。2015-08-08
jQuery點(diǎn)擊導(dǎo)航欄選中更換樣式的實(shí)現(xiàn)代碼
這篇文章主要介紹了jQuery點(diǎn)擊導(dǎo)航欄選中更換樣式的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01

