eval函數可以用來將一個表示成字符串形式的javascript表達式轉化為對應的javascript對象或值。
在實際的開發中,我們常常會遇到一個需求,就是將json格式的字符串轉化為javascript對象,eval函數可以很好地滿足這個需求。
// json字符串 var jsonString = '{"name": "小明", "age": 18, "address": {"province":"湖北省", "city": "武漢市"}}'; // 將json字符串轉化為javascript對象 var jsonObj = eval('(' + jsonString + ')'); // 獲取json值 console.log(jsonObj.name); // 輸出:小明 console.log(jsonObj.age); // 輸出:18 console.log(jsonObj.address.province); // 輸出:湖北省 console.log(jsonObj.address.city); // 輸出:武漢市
需要注意的是,在將json字符串轉化為javascript對象時,要在json字符串兩端加上括號,否則會報錯。
使用eval函數轉化json數據可以很方便地將json字符串轉化為javascript對象,但是需要注意安全問題,因為eval函數會直接執行字符串中的javascript代碼,如果不在處理之前對字符串進行驗證,就可能會產生安全隱患。