json parse和eval

json的解析方法共有兩種:eval() 和 JSON.parse()javascript

例子:java

1 var value = 1;
2 var jsonstr = '{"data1":"hello","data2":++value}';
3 var data1 = eval_r('('+jsonstr+')');
4 console.log(data1);//這時value值爲2var data2=JSON.parse(jsonstr);
5 console.log(data2);//報錯

 

在代碼中使用eval是很危險的,特別是用它執行第三方的JSON數據(其中可能包含惡意代碼)時,儘量使用JSON.parse()方法解析字符串自己。json

該方法能夠捕捉JSON中的語法錯誤,並容許你傳入一個函數,用來過濾或轉換解析結果。若是此方法以備Firfox 3.5 、IE8 及 Safari 4 原生支持。函數

大多數javascript類庫包含的JSON解析代碼會直接調用原生版本,若是沒有原生支持的話,會調用一個略微不那麼強大的非原生版原本處理。spa

 

只有在json.parse解析不了且必定要解析的狀況下才不得不考慮使用eval().code

相關文章
相關標籤/搜索