协慌网

登录 贡献 社区

安全地将 JSON 字符串转换为对象

给定一串 JSON 数据,您如何安全地将该字符串转换为 JavaScript 对象?

很显然,你可以通过像...... 这样的东西不安全地做到这一点。

var obj = eval("(" + json + ')');

... 但是这使得我们容易受到包含其他代码的 json 字符串的影响,这对于简单的 eval 来说似乎非常危险。

答案

JSON.parse(jsonString)是一种纯 JavaScript 方法,只要你能保证一个合理的现代浏览器。

现在不推荐使用 jQuery 方法。请改用此方法:

let jsonObject = JSON.parse(jsonString);

使用弃用的 jQuery 功能的原始答案

如果您正在使用 jQuery,请使用:

jQuery.parseJSON( jsonString );

这正是您正在寻找的(请参阅 jQuery 文档 )。

编辑:这个答案适用于 IE <7,现代浏览器检查 Jonathan 的答案。

编辑:这个答案已经过时, Jonathan 上面的回答JSON.parse(jsonString) )现在是最好的答案

JSON.org有许多语言的 JSON 解析器,包括 4 个不同的 Javascript 解析器。我相信大多数人会认为json2.js 是他们的 goto 实现。