在JavaScript中,eval()函數可以用于將一個JSON字符串轉換成一個JSON對象。
// 一個JSON字符串 var str = '{ "name": "小明", "age": 18 }'; // 使用eval()將字符串轉換成JSON對象 var obj = eval('(' + str + ')');
使用eval()函數將字符串轉換成對象的時候,一定要注意要在字符串兩側添加括號,否則會拋出語法錯誤的異常。
// 錯誤寫法 var obj = eval(str); // 正確寫法 var obj = eval('(' + str + ')');
同時需要注意的是,eval()函數在執行的時候會執行所有的JavaScript代碼,因此在傳入的JSON字符串不確定的情況下,使用eval()函數可能會存在風險。推薦使用JSON.parse()函數。
// 使用JSON.parse()將字符串轉換成JSON對象 var obj = JSON.parse(str);
JSON.parse()函數在IE8及以上版本的瀏覽器和現代瀏覽器中都有支持。如果需要支持更早期版本的瀏覽器,可以使用JSON2.js庫提供的json2.js文件。