作为MongoDB脚本的一部分,我需要解析JSON。 (不是你通常会做的事,但毕竟是Javascript)。
JSON.parse
不存在。
以下是我的解决方法:
function parseJSON(json) {
return eval("(function() { return "+json+"; })()");
}
这看起来似乎并不高效,而且看起来有点荒谬。有没有人有更好的方法?
答案 0 :(得分:0)
如果你真的必须将JSON字符串转换为JavaScript对象,那么你建议的是完全合理的,尽管由于性能问题和安全风险而有理由避免eval(参见When is JavaScript's eval() not evil?)。如果您生成了JSON数据并且确定内部没有任何危险,那么您可能不必担心注入漏洞。
就性能而言,除了JSON.parse之外,我还没有意识到更好的事情。你可以改变程序的设计,这样你就不必解析JSON了吗?例如,要将JSON数据导入MongoDB,而不是使用eval,您应该使用mongoimport实用程序。