用于解析 JSON 的 JavaScript eval() 替代方案

2024-03-07

快速提问。 JavaScript 中的 Eval 不安全,不是吗?我有一个字符串形式的 JSON 对象,我需要将其转换为实际对象,以便获取数据:

function PopulateSeriesFields(result) 
{
    data = eval('(' + result + ')');
    var myFakeExample = data.exampleType
}

如果有帮助的话,我正在使用 jQuery 的 $.ajax 方法。

Thanks


好吧,不管安全与否,当你使用 jQuery 时,你最好使用$.getJSON() http://docs.jquery.com/Ajax/jQuery.getJSON方法,而不是 $.ajax():

$.getJSON(url, function(data){
    alert(data.exampleType);
});

eval()当您仅与自己的服务器通信时,尤其是当您在服务器端使用良好的 JSON 库来保证生成的 JSON 不会包含任何令人讨厌的内容时,通常认为 JSON 解析是安全的。

就连 JSON 的作者 Douglas Crockford 也说你不应该使用eval()代码中的任何位置(解析 JSON 除外)。请参阅他书中的相应部分

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于解析 JSON 的 JavaScript eval() 替代方案 的相关文章

随机推荐