json格式很是受欢迎,而解析json的方式一般用JSON.parse()可是eval()方法也能够解析,这二者之间有什么区别呢? git
JSON.parse()之能够解析json格式的数据,而且会对要解析的字符串进行格式检查,若是格式不正确则不进行解析,而eval()则能够解析任何字符串,eval是不安全的。 github
好比下面的字符串: json
var str = 'alert(1000.toString())'; eval(str); JSON.parse(str);
用eval能够解析,而且会弹出对话框,而用JSON.parse()则解析不了。 其实alert并无什么坏处,可怕的是若是用恶意用户在json字符串中注入了向页面插入木马连接的脚本,用eval也是能够操做的,而用JSON.parse()则没必要担忧这个问题。 浏览器
注意:某些低级的浏览器尚不支持JSON.parse(),能够到 https://github.com/douglascrockford/JSON-js/blob/master/json2.js 下载。 安全