Javascript中的JSON解析

在網站建設中,我們經常會用到ajax進行無刷新交互對頁面進行數據的改變或展示,其中我們最常使用的交互數據類型是json。
今天,我在使用的時候就犯了一個json解析的錯誤。

//json是後臺傳過來的json格式的數據
var obj2=eval(json);//eval()方法對json數組進行解析成對象,然後通過對象-屬性的方式獲取其中的值
alert(obj2.property);//發現alert的結果爲undefined

找了一些資料才知道,原來是eval()方法的用法不對,正確的寫法應該如下

//json是後臺傳過來的json格式的數據
var obj2=eval("("+json+")");//eval()方法對json數組進行解析成對象,然後通過對象-屬性的方式獲取其中的值
alert(obj2.property);//打印出正確的值

爲什麼eval(“(“+json+”)”)

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

  加上圓括號的目的是迫使eval函數在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化爲對象,而不是作爲語句(statement)來執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章