最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)格式,采用完全獨立于語言的文本格式,是理想的數(shù)據(jù)交換格式。同時,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是相對比較容易的理解和使用的,但同時存在很多的陷阱,如果不注意的話很容易掉進(jìn)去。

json的的解析方法

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

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

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

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

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

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

《高性能Javascript》(本站下載地址:http://m.fzitv.net/books/36680.html)一書即指出:

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

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

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

相關(guān)文章

  • JavaScript實現(xiàn)帶標(biāo)題的圖片輪播特效

    JavaScript實現(xiàn)帶標(biāo)題的圖片輪播特效

    這里給大家分享的是4屏帶標(biāo)題和文字描述的js圖片輪播代碼,完美兼容IE6。圖片滾動切換,鼠標(biāo)放到數(shù)字選項卡即可切換圖片。點擊圖片跳轉(zhuǎn)到指定頁面,有需要的小伙伴可以參考下。
    2015-05-05
  • JavaScript中if、else?if、else和switch的語法、用法及注意事項

    JavaScript中if、else?if、else和switch的語法、用法及注意事項

    這篇文章主要介紹了JavaScript中的條件判斷語句,包括if、elseif、else和switch的基本語法、用法及注意事項,通過這些語句,可以根據(jù)不同的條件執(zhí)行相應(yīng)的代碼塊,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • layui關(guān)閉彈窗后刷新主頁面和當(dāng)前更改項的例子

    layui關(guān)閉彈窗后刷新主頁面和當(dāng)前更改項的例子

    今天小編就為大家分享一篇layui關(guān)閉彈窗后刷新主頁面和當(dāng)前更改項的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • javascript限制文本框輸入值類型的方法

    javascript限制文本框輸入值類型的方法

    這篇文章主要介紹了javascript限制文本框輸入值類型的方法,涉及javascript鼠標(biāo)事件、鍵盤按鍵及字符串的相關(guān)操作技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • javascript事件委托的方式綁定詳解

    javascript事件委托的方式綁定詳解

    我們在學(xué)習(xí)JavaScript中,難免都會去網(wǎng)上查一些資料,也許偶爾就會遇到“事件委托”,但是,大多數(shù)時說的是“事件綁定”,對于“事件委托”,或是不提,或是淺嘗輒止,對于我這個比較好奇的人來說,實在很頭疼,尤其是想更多的了解“事件委托”的時候
    2015-06-06
  • js數(shù)組與字符串的相互轉(zhuǎn)換方法

    js數(shù)組與字符串的相互轉(zhuǎn)換方法

    這篇文章主要介紹了js數(shù)組與字符串的相互轉(zhuǎn)換方法,是js中常用的技巧,需要的朋友可以參考下
    2014-07-07
  • 關(guān)于js new Date() 出現(xiàn)NaN 的分析

    關(guān)于js new Date() 出現(xiàn)NaN 的分析

    在一個項目中需要進(jìn)行日期的格式化,后臺傳到前端是時間的整數(shù)(Date.getTime),當(dāng)后臺數(shù)據(jù)返回字符串時,發(fā)現(xiàn)轉(zhuǎn)換日期時在ie下變成NaN,但是真的是這樣嗎?接下來我們慢慢分析
    2012-10-10
  • JS實現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)的代碼詳解

    JS實現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)的代碼詳解

    很多前端的同學(xué)對數(shù)據(jù)結(jié)構(gòu)和算法這塊沒有太多的概念,很多l(xiāng)eetcode的題目看不懂,有時候可能看了題解也不知道是什么意思,這篇文章咱們來簡單的談一談鏈表,文中給大家介紹了JS實現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)的示例代碼,需要的朋友可以參考下
    2024-01-01
  • 使用InstantClick.js讓頁面提前加載200ms

    使用InstantClick.js讓頁面提前加載200ms

    本篇文章主要介紹了使用InstantClick.js讓頁面提前加載200ms,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • js中toString()與valueOf()的使用

    js中toString()與valueOf()的使用

    tostring 和 valueOf 函數(shù)是解決值的顯示和運算的問題,本文主要介紹了js中toString()與valueOf()的使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評論

柘城县| 长宁县| 太仆寺旗| 农安县| 邻水| 日照市| 新营市| 宁陵县| 卓资县| 砚山县| 塔河县| 水富县| 广元市| 乌兰县| 四平市| 龙海市| 广昌县| 南召县| 郴州市| 淅川县| 遵义市| 都江堰市| 微山县| 武平县| 东宁县| 余干县| 鹤岗市| 乐东| 石棉县| 乳山市| 兴国县| 赞皇县| 格尔木市| 洪江市| 抚宁县| 楚雄市| 逊克县| 夹江县| 西盟| 武穴市| 蒲城县|