最近在開發(fā)過程中遇到了一個問題,就是使用eval將字符串轉(zhuǎn)換成JSON串失敗了,經(jīng)過一番研究,發(fā)現(xiàn)問題出在了我的代碼上。
// 原始數(shù)據(jù)為以下字符串 var str = '{"name": "張三", "age": 18, "gender": "male"}'; // 使用eval將字符串轉(zhuǎn)換成JSON對象 var json = eval('(' + str + ')');
在上面代碼中,我使用了eval函數(shù)來將字符串轉(zhuǎn)換成JSON對象,結(jié)果卻拋出了SyntaxError錯誤。
經(jīng)過查找資料和多次測試,發(fā)現(xiàn)問題出在了我的代碼括號上,我沒有將括號加上引號。
// 更改后的代碼 var json = eval("("+ str + ")"); // 或者是使用JSON.parse來進行轉(zhuǎn)換 var json = JSON.parse(str);
通過以上代碼的修改和調(diào)試,我終于成功地將字符串轉(zhuǎn)換成了JSON對象,并順利解決了我的問題。
總結(jié)來說,eval將字符串轉(zhuǎn)換成JSON串失敗可能是因為代碼括號沒有加引號,建議大家在使用eval進行轉(zhuǎn)換時,要注意這一點。