亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jquery eval解析JSON中的注意點介紹

2019-11-20 22:22:10
字體:
來源:轉載
供稿:網友
在JS中將JSON的字符串解析成JSON數據格式,一般有兩種方式:

1.一種為使用eval()函數。

2. 使用Function對象來進行返回解析。

使用eval函數來解析,并且使用jquery的each方法來遍歷

用jquery解析JSON數據的方法,作為jquery異步請求的傳輸對象,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對象
為什么要 eval這里要添加 “("("+data+")");//”呢?

原因在于:eval本身的問題。 由于json是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。

加上圓括號的目的是迫使eval函數在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化為對象,而不是作為語句(statement)來執行。舉一個例子,例如對象字面量{},如若不加外層的括號,那么eval會將大括號識別為JavaScript代碼塊的開始和結束標記,那么{}將會被認為是執行了一句空語句。所以下面兩個執行結果是不同的:
復制代碼 代碼如下:

alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]

對于這種寫法,在JS中,可以到處看到。

如: (function()) {}(); 做閉包操作時等。
--------------------------------------------------------------------------------
復制代碼 代碼如下:

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://www.phpzixue.cn/",{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的腳本庫。

第二種解析方式就是使用Function對象來完成,它的典型應用就是在JQUERY中的AJAX方法下的success等對于返回數據data的解析
復制代碼 代碼如下:

var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();

此時的data就是一個會解析成一個 json對象了.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩国产页| 伊人亚洲福利一区二区三区| 91av成人在线| 97在线视频免费| 久久精品视频在线观看| 欧美日韩国产区| 欧美日韩激情视频8区| 久久这里只有精品视频首页| 国产精品中文久久久久久久| 精品久久久久久久久久国产| 欧美另类99xxxxx| 久久精品亚洲热| 中文字幕在线看视频国产欧美| 国产精品国产三级国产aⅴ浪潮| 亚洲欧美中文日韩在线v日本| 日韩高清电影免费观看完整版| 久久最新资源网| 亚洲人高潮女人毛茸茸| 国产精品夜间视频香蕉| 国产成人一区二区三区电影| 亚洲视频欧美视频| 成人免费淫片aa视频免费| 黄色精品在线看| 亚洲的天堂在线中文字幕| 日韩欧美极品在线观看| 久久久亚洲国产| 欧美中文在线观看| 欧美噜噜久久久xxx| 性色av一区二区三区免费| www.精品av.com| 日韩av免费看| www.久久色.com| 成人免费激情视频| 成人黄在线观看| 亚洲一区二区三区sesese| 国产精品久久久999| 国产成人精品视频| 日韩av男人的天堂| 欧美日韩国产在线| 国产成人亚洲综合91精品| 一区二区欧美久久| 国产97免费视| 欧美性在线观看| 成人免费福利在线| 精品夜色国产国偷在线| www.欧美精品一二三区| 日韩av网站在线| 亚洲欧美日韩视频一区| 国产精品视频自在线| 热99精品里视频精品| 国产丝袜一区二区三区免费视频| 97色在线观看免费视频| 国内精品视频一区| 日韩欧美中文免费| 欧美激情videos| 国内精品免费午夜毛片| 国产欧美日韩高清| 日本久久久久亚洲中字幕| 国产视频一区在线| 精品国产乱码久久久久久婷婷| 久久国产精品偷| 一区二区三区黄色| 日韩精品久久久久久久玫瑰园| 国产脚交av在线一区二区| 日韩精品亚洲视频| 国语自产精品视频在线看抢先版图片| 亚洲香蕉av在线一区二区三区| 欧美激情亚洲一区| 亚洲国产精品va在线看黑人动漫| 一区二区在线免费视频| 亚洲免费av电影| 国产亚洲欧洲高清| 精品国产精品三级精品av网址| 成人网址在线观看| 91久久精品国产91性色| 亚洲视频欧美视频| 国产精品v日韩精品| 欧美精品videossex性护士| 成人写真视频福利网| 中文字幕亚洲欧美在线| 国产精品一二三在线| 亚洲成成品网站| 精品亚洲夜色av98在线观看| 成人国产精品日本在线| 国产精品黄色影片导航在线观看| 精品久久久在线观看| 一区二区三区四区在线观看视频| 北条麻妃在线一区二区| 久久精品久久久久久国产 免费| 久久久午夜视频| 欧美精品第一页在线播放| 国产精品久久久久久网站| 欧美自拍视频在线| 欧美一区二区大胆人体摄影专业网站| 欧美一区二粉嫩精品国产一线天| 日韩av中文字幕在线播放| 日韩精品视频在线观看免费| 中文字幕av一区二区| 久久精品人人做人人爽| 日韩精品免费在线观看| 欧美国产日韩一区二区在线观看| 波霸ol色综合久久| 欧美高清性猛交| 国产精品人成电影| 欧美黄色三级网站| 亚洲一区二区三区xxx视频| 日韩成人在线电影网| 成人观看高清在线观看免费| 一区二区三区四区视频| 欧美成人激情图片网| 欧美精品在线看| 欧美日韩国产在线| 欧美亚洲视频在线看网址| 国产视频综合在线| 欧美精品xxx| 国产免费观看久久黄| 丝袜美腿精品国产二区| 国模视频一区二区| 国产精品欧美日韩| 久久精品久久久久| 国产成人精品视| 亚洲精品999| 国产精品jvid在线观看蜜臀| 亚洲天堂视频在线观看| 在线电影av不卡网址| 91人人爽人人爽人人精88v| 大伊人狠狠躁夜夜躁av一区| 欧美性20hd另类| 国产噜噜噜噜久久久久久久久| 亚洲性日韩精品一区二区| 色一区av在线| 91亚洲精品一区二区| 国产精品v日韩精品| 亚洲第一精品夜夜躁人人爽| 亚洲精品999| 国产精品久久久久av| 亚洲jizzjizz日本少妇| 亚洲一级黄色av| 久久深夜福利免费观看| 亚洲深夜福利在线| 色妞色视频一区二区三区四区| 久久久久久久久久久网站| 午夜精品久久久久久久久久久久久| 久久青草精品视频免费观看| 国产网站欧美日韩免费精品在线观看| 亚洲第一区中文字幕| 久久久精品中文字幕| 91精品国产高清自在线看超| 亚洲第一中文字幕在线观看| 福利精品视频在线| 国产成人亚洲综合91| 亚洲日本aⅴ片在线观看香蕉| 欧美裸体xxxx| 成人在线一区二区| 97视频在线观看成人| 成人网址在线观看| 亚洲精品网址在线观看| 中文字幕亚洲欧美一区二区三区| 午夜精品久久久久久久白皮肤| 亚洲综合日韩中文字幕v在线| 精品人伦一区二区三区蜜桃免费| 亚洲在线视频观看| 日韩成人av在线播放| 日本成人黄色片|