欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript中JSON.parse()與eval()解析json的區(qū)別

 更新時(shí)間:2016年05月19日 10:01:44   作者:yanhui_wei  
這篇文章主要介紹了javascript中JSON.parse()與eval()解析json的區(qū)別,詳細(xì)描述了json格式數(shù)據(jù)的操作技巧,并結(jié)合實(shí)例形式對(duì)比分析了使用JSON.parse()與eval()解析json的區(qū)別,需要的朋友可以參考下

本文實(shí)例講述了javascript中JSON.parse()與eval()解析json的區(qū)別。分享給大家供大家參考,具體如下:

JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)格式,采用完全獨(dú)立于語(yǔ)言的文本格式,是理想的數(shù)據(jù)交換格式。同時(shí),JSON是Javascript原生格式,這意味著在javascript中處理JSON數(shù)據(jù)

基本格式:

varjsonData='{"data1":"Hello,","data2":"world!"}'

調(diào)用方法jsonData.data1,jsonData.data2

很多json數(shù)據(jù)存入數(shù)組

var jsonData=[
 {"name":"LiLei","age":19,"sex":"male"},
 {"name":"HanMei","age":18,"sex":"famale"}
]

調(diào)用方法jsonData[0].name,jsonData[1].sex

總體而言,json是相對(duì)比較容易的理解和使用的,但同時(shí)存在很多的陷阱,如果不注意的話很容易掉進(jìn)去。

json的的解析方法

json的解析方法共有兩種:eval() 和 JSON.parse(),使用方法如下:

var jsonData = '{"data1":"Hello,", "data2":"world!}';
var evalJson=eval('('+jsonData+')');
var jsonParseJson=JSON.parse(jsonData);

這樣就把jsonData這個(gè)json格式的字符串轉(zhuǎn)換成了JSON對(duì)象。

二者的區(qū)別如下:

var value = 1;
var jsonstr = '{"data1":"hello","data2":++value}';
var data1 = eval_r('('+jsonstr+')');
console.log(data1);//這時(shí)value值為2
var data2=JSON.parse(jsonstr);
console.log(data2);//報(bào)錯(cuò)

可以看到控制輸出臺(tái)的結(jié)果,第一個(gè)eval()順利執(zhí)行,第二個(gè)報(bào)錯(cuò)了。從上例就可以明顯地看出,eval在解析字符串時(shí),會(huì)執(zhí)行該字符串中的代碼(這樣的后果是相當(dāng)惡劣的),如上例中,由于用eval解析一個(gè)json字符串而造成原先的value的值改變。

《高性能Javascript》(本站下載地址:http://www.dbjr.com.cn/books/36680.html)一書即指出:

警告:關(guān)于JSON和eval需要注意的是:在代碼中使用eval是很危險(xiǎn)的,特別是用它執(zhí)行第三方的JSON數(shù)據(jù)(其中可能包含惡意代碼)時(shí),盡可能使用JSON.parse()方法解析字符串本身。該方法可以捕捉JSON中的語(yǔ)法錯(cuò)誤,并允許你傳入一個(gè)函數(shù),用來(lái)過濾或轉(zhuǎn)換解析結(jié)果。如果此方法以備Firfox 3.5 、IE8 及 Safari 4 原生支持。大多數(shù)javascript類庫(kù)包含的JSON解析代碼會(huì)直接調(diào)用原生版本,如果沒有原生支持的話,會(huì)調(diào)用一個(gè)略微不那么強(qiáng)大的非原生版本來(lái)處理。

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論