JSON.parse()和eval()的区别

前端之家收集整理的这篇文章主要介绍了JSON.parse()和eval()的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们都知道JSON.stringify()可以将对象转为字符串,那么如何将字符串转化为对象呢?

你可能想到eval(),或者JSON.parse();

这两者之间有什么区别呢?

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

比如下面的字符串:

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

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

原文链接:https://www.f2er.com/json/289019.html

猜你在找的Json相关文章