首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JSON.parse与eval()

JSON.parse与eval()
EN

Stack Overflow用户
提问于 2009-12-04 06:14:53
回答 5查看 126.9K关注 0票数 99

我的Spider Sense警告我,使用eval()来解析传入的JSON不是一个好主意。我只是想知道JSON.parse() -我假设它是JavaScript的一部分,而不是特定于浏览器的函数-是不是更安全。

EN

回答 5

Stack Overflow用户

发布于 2010-04-21 06:38:43

所有JSON.parse实现都很可能使用eval()

JSON.parse基于Douglas Crockford's solution,它在line 497上使用了eval()

代码语言:javascript
复制
// In the third stage we use the eval function to compile the text into a
// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
// in JavaScript: it can begin a block or an object literal. We wrap the text
// in parens to eliminate the ambiguity.

j = eval('(' + text + ')');

JSON.parse的优点是它验证了参数是否正确。

票数 38
EN

Stack Overflow用户

发布于 2009-12-04 06:23:00

并非所有浏览器都支持原生JSON,因此有时需要对JSON字符串使用eval()。使用http://json.org中的JSON解析器,因为它可以更轻松地处理所有事情。

Eval()是一个邪恶的东西,但对于某些浏览器来说,它是一个必要的邪恶,但在你可以避免它的地方,就这么做吧!

票数 15
EN

Stack Overflow用户

发布于 2014-02-22 11:09:35

JSON.parse()和eval()接受的内容是不同的。对此尝试eval:

var x= "{\"shoppingCartName\":\"shopping_cart:2000\"}“

代码语言:javascript
复制
eval(x)         //won't work
JSON.parse(x)   //does work

请参阅此example

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1843343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档