用JSON.parse和eval出现的问题

mac2022-06-30  26

json格式非常受欢迎,而解析json的方式通常用JSON.parse()但是eval()方法也可以解析,这两者之间有什么区别呢?

JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。

比如下面的字符串:

var str = 'alert(1000.toString())'; eval(str); JSON.parse(str);

用eval可以解析,并且会弹出对话框,而用JSON.parse()则解析不了。 其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。

 

自己在工作中碰到的用JSON.parse出现的问题   

var str='{"":"","":""}';这种可以用JSON.parse执行

var str="{'':'','':''}";这种怎么都不行,执行不行,会报错误(报第一行的错误)

 

 

注意:某些低级的浏览器尚不支持JSON.parse(),

转载于:https://www.cnblogs.com/pengfei25/p/6008070.html

相关资源:JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
最新回复(0)