日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

eval()解析JSON

發(fā)布時間:2023/12/20 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eval()解析JSON 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

eval()將JSON文本轉(zhuǎn)換為javascript對象.
如:
var data=”{‘elements’:["+
"{'firstname':'yan','lastname':'tang'},"+
"{'firstname':'tommy','lastname':'wrox'}]}”;

var obj=eval(“(“+data+”)”);//轉(zhuǎn)換為json對象
為什么要在eval這里要添加 (“(“+data+”)”); 呢?
原因在于:由于eval本身可以編譯并執(zhí)行javascript代碼, 而json是以”{ }”的方式來開始以及結(jié)束的,在JS中,它會被當(dāng)成一個語句塊來處理,所以必須強制性的將它轉(zhuǎn)換成一種表達式。
加上圓括號的目的是迫使eval函數(shù)在處理JavaScript代碼的時候強制將括號內(nèi)的表達式(expression)轉(zhuǎn)化為對象,而不是作為語句(statement)來執(zhí)行。舉一個例子,例如對象字面量{}(一個對象字面量就是包括在一對花括號里的零或多個”名/值”對),如若不加外層的括號,那么eval會將大括號識別為JavaScript代碼塊的開始和結(jié)束標(biāo)記,那么{}將會被認為是執(zhí)行了一句空語句。所以下面兩個執(zhí)行結(jié)果是不同的:
alert(eval(“{}”)); // return undefined
alert(eval(“({})”));// return object[Object]
除了使用eval之外,還可以使用JSON.parse();來解析JSON文本,而且更安全,因為他只能識別 JSON 文本,而不會編譯腳本。速度也比使用eval()快!

轉(zhuǎn)載于:https://www.cnblogs.com/JavaTechLover/archive/2012/06/25/2561024.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的eval()解析JSON的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。