javascript
eval()解析JSON
eval()將JSON文本轉換為javascript對象.
如:
var data=”{‘elements’:["+
"{'firstname':'yan','lastname':'tang'},"+
"{'firstname':'tommy','lastname':'wrox'}]}”;
var obj=eval(“(“+data+”)”);//轉換為json對象
為什么要在eval這里要添加 (“(“+data+”)”); 呢?
原因在于:由于eval本身可以編譯并執行javascript代碼, 而json是以”{ }”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。
加上圓括號的目的是迫使eval函數在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化為對象,而不是作為語句(statement)來執行。舉一個例子,例如對象字面量{}(一個對象字面量就是包括在一對花括號里的零或多個”名/值”對),如若不加外層的括號,那么eval會將大括號識別為JavaScript代碼塊的開始和結束標記,那么{}將會被認為是執行了一句空語句。所以下面兩個執行結果是不同的:
alert(eval(“{}”)); // return undefined
alert(eval(“({})”));// return object[Object]
除了使用eval之外,還可以使用JSON.parse();來解析JSON文本,而且更安全,因為他只能識別 JSON 文本,而不會編譯腳本。速度也比使用eval()快!
轉載于:https://www.cnblogs.com/JavaTechLover/archive/2012/06/25/2561024.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的eval()解析JSON的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术类简历编写指南
- 下一篇: android获取root代码,Andr