0

作为 MongoDB 脚本的一部分,我需要解析 JSON。(这不是您通常会做的事情,但毕竟是 Javascript)。

JSON.parse不存在。

这是我做的解决方法:

function parseJSON(json) {
    return eval("(function() { return "+json+"; })()");
}

这似乎不会是高性能的,而且看起来有点荒谬。有没有人有更好的方法?

4

1 回答 1

0

如果您确实必须将 JSON 字符串转换为 JavaScript 对象,那么您的建议是完全合理的,尽管由于性能问题和安全风险有理由避免 eval(请参阅JavaScript 的 eval() 何时不邪恶?)。如果您生成了 JSON 数据并且您确定里面没有危险,那么您可能不必担心注入漏洞。

就性能而言,除了 JSON.parse 之外,我不知道有什么更好的方法。你能改变你的程序设计,这样你就不必解析 JSON 了吗?例如,要将 JSON 数据导入 MongoDB,而不是使用 eval,您应该使用mongoimport实用程序。

于 2013-09-19T19:24:15.653 回答