我的Spider Sense警告我,使用eval()
来解析传入的JSON不是一个好主意。我只是想知道JSON.parse()
-我假设它是JavaScript的一部分,而不是特定于浏览器的函数-是不是更安全。
发布于 2010-04-21 06:38:43
所有JSON.parse
实现都很可能使用eval()
JSON.parse
基于Douglas Crockford's solution,它在line 497上使用了eval()
。
// 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
的优点是它验证了参数是否正确。
发布于 2009-12-04 06:23:00
并非所有浏览器都支持原生JSON,因此有时需要对JSON字符串使用eval()
。使用http://json.org中的JSON解析器,因为它可以更轻松地处理所有事情。
Eval()
是一个邪恶的东西,但对于某些浏览器来说,它是一个必要的邪恶,但在你可以避免它的地方,就这么做吧!
发布于 2014-02-22 11:09:35
JSON.parse()和eval()接受的内容是不同的。对此尝试eval:
var x= "{\"shoppingCartName\":\"shopping_cart:2000\"}“
eval(x) //won't work
JSON.parse(x) //does work
请参阅此example。
https://stackoverflow.com/questions/1843343
复制相似问题