jquery JSON的解析方式

這里考慮都考慮的是服務器返回的是JSON形式的字符串的形式,對于利用JSONObject等插件封裝的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異步獲取的數據類型——json對象和字符串為依據,分別介紹兩種方式獲取到的結果處理方式。

1.對于服務器返回的JSON字符串,如果jquery異步請求沒做類型說明,或者以字符串方式接受,那么需要做一次對象化處理,方式不是太麻煩,就是將該字符串放于eval()中執行一次。這種方式也適合以普通javascipt方式獲取json對象,以下舉例說明:

var dataObj=eval("("+data+")");//轉換為json對象
alert(dataObj.root.length);//輸出root的子對象數量
$.each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}

//輸出每個root子對象的名稱和值
alert("name:"+item.name+",value:"+item.value);
})

注:對于一般的js生成json對象,只需要將$.each()方法替換為for語句即可,其他不變。

2.對于服務器返回的JSON字符串,如果jquery異步請求將type(一般為這個配置屬性)設為“json”,或者利用$.getJSON()方法獲得服務器返回,那么就不需要eval()方法了,因為這時候得到的結果已經是json對象了,只需直接調用該對象即可,這里以$.getJSON方法為例說明數據處理方法:

$.getJSON("http://gaoyusi.blog.163.com/",{param:"gaoyusi"},function(data){
//此處返回的data已經是json對象
//以下其他操作同第一種情況
$.each(data.root,function(idx,item){
if(idx==0){
return true;//同countinue,返回false同break
}

alert("name:"+item.name+",value:"+item.value);

});
});

這里特別需要注意的是方式1中的eval()方法是動態執行其中字符串(可能是js腳本)的,這樣很容易會造成系統的安全問題。所以可以采用一些規避了eval()的第三方客戶端腳本庫,比如JSON in JavaScript就提供了一個不超過3k的腳本庫。

轉載于:https://www.cnblogs.com/tcpcg/archive/2012/11/22/2782549.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274478.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274478.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274478.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GitHub 搜索技巧:如何更有效地搜索 issue、repo 和更多信息

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

js 繪畫js 繪畫路徑_繪畫是一種技能,而不是才能

js 繪畫js 繪畫路徑重點 (Top highlight)November 2019… some decided to start rocking a moustache, others were obsessed with baby Yoda. I decided to commit to drawing something every single day. As a way to keep myself accountable I started posting daily on …

tslib1.4安裝小記

tslib,是觸摸屏校準需要的庫文件。1、tslib的安裝需要執行以下命令sudo apt-get install autoconfsudo apt-get install automakesudo apt-get install libtool如果再非UBUNTU的機子上這參考:http://blog.chinaunix.net/uid-22391661-id-1774370.html 2運…

點擊頁面元素跳轉IDE對應代碼,試試這幾個工具!

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

shields 徽標_徽標不夠用時如何設計應用程序圖標

shields 徽標What’s the first thing that comes to mind when you think about a particular app? Chances are, it’s the icon. And it’s certainly the first thing a user notices when deciding what app to install — similar to studying the supermarket shelves.…

文本光標,高亮選中一些出來

document.body.οnmοuseupfunction(){if(window.getSelection){if(window.getSelection().toString()!""){alert("顯示彈出框");window.getSelection().removeAllRanges()//用于清除高亮選中}}else if(document.selection){if(document.selection.createR…

基于Sentry高效治理前端異常

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

zoom 用戶被鎖定_重新考慮Zoom的用戶體驗

zoom 用戶被鎖定Zoom is a household name now. It’s weird, but a new reality for 2020. I’ve been able to reliably stay in touch with so many people and even throw surprise birthday parties! It has been one of the products that has kept me busy through this…

或許是我們學錯了方向?

大家好,我是若川。最近來了一些新朋友,感謝大家關注~相比于原生 JS 等源碼。我們或許更應該學習正在使用的組件庫的源碼(如:element、antd、vant、semi、arco、tdesign 等),先從簡單的看起,Butt…

Android 默認Tab標簽大小及間距修改

一般來說,我都是用Android默認的Tab,但此時Android會根據你增加的Tab頁面平均分配Tab標簽,假如你只有兩個Tab,那么長度將會很長,并且其高度略微過高,并不好看,網上解決這個問題有些是自定義Tab。…

ui設計看的書_5本關于UI設計的書

ui設計看的書Want to develop a better eye and vocabulary for judging layouts, type choices and imagery?是否想開發一種更好的眼神和詞匯來判斷布局,類型選擇和圖像? According to performance experts, the best way to learn is to gain lots o…

GitHub 這8大超實用小技巧,99.9%的人都不知道!

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

android的消息處理機制(圖+源碼分析)——Looper,Handler,Message

http://www.cnblogs.com/codingmyworld/archive/2011/09/12/2174255.html 還有相關的如下鏈接需要仔細check: http://mindtherobot.com/blog/159/android-guts-intro-to-loopers-and-handlers/ http://www.cnblogs.com/keyindex/articles/1822463.html轉載于:https:…

案例研究設計與方法-羅伯_旭進口重新設計-用戶體驗案例研究

案例研究設計與方法-羅伯Asahi Imports is a Japanese grocery store located in central Austin, Texas. It has a passionate following, over fifty years’ history, and strong business growth. But its website is showing its age, and not hitting its full potential…

Taro v3.6 代號為「Reach」,已發布 canary 版本

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 lxchuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

axure rp 創建彈框_如何在Axure RP 9中創建交換機

axure rp 創建彈框Axure is a well-known prototyping tool with a lot of history, it has been around for years. You can create almost any kind of prototypes from simple ones to more complex ones with variables and logic without writing a single line of code (…

linux下使用cmake構建C/C++項目

cmake下載安裝: 下載地址: http://www.cmake.org/cmake/resources/software.html wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar zxvf cmake-2.8.10.2.tar.gz cd cmake-2.8.10.2 ./configure gmake (不知道是不是必須的,提示要這么干…

用 Vue3 手撕了個企業級項目,真香!

最近幾年,隨著短視頻、小程序、直播帶貨的火爆,前端開發工程師越來越熱門,薪資待遇也快接近后端開發工程師了,前端領域進化為內卷重災區。然而伴隨著 Vue 3.0 的發布,前端技術也迎來了一次大革新,像是字節跳…

界面設計語言_使用任何語言設計界面的提示

界面設計語言Designing for international audiences is challenging. I spent most of my career in Australia designing exclusively in English. Australian English is ‘unique’ in the sense that we are really into slang, puns, idioms.為國際觀眾設計是具有挑戰性的…

托管代碼和非托管代碼

托管代碼和非托管代碼有什么區別呢?從字面上理解,只是一個是被托管的,另一個是沒有被托管的。但是,被托管的托管代碼是被誰管著呢?讓我們先來看看它們的定義。 托管代碼:由公共語言運行庫環境(而…