使用jquery解析安全json?

use*_*114 6 jquery

我正在使用json与json.我的客户端页面生成json,我存储在我的服务器上.然后,客户端可以稍后将json取回,解析并显示它.

由于我的客户正在生成json,它可能不安全.我认为jquery在内部使用eval().真的吗?有没有办法在可用的浏览器中使用本机json解析器,否则回退到手动解析?我是jquery的新手,所以我不知道在哪里插入自己的解析代码.我做的事情如下:

$.ajax({
    url: 'myservlet',
    type: 'GET',
    dataType: 'json',
    timeout: 1000,
    error: function(){
        alert('Error loading JSON');
    },
    success: function(json){
        alert("It worked!: " + json.name + ", " + json.grade);
    }
});
Run Code Online (Sandbox Code Playgroud)

所以在success()方法中,json对象已经为我解析了.有没有办法先将它作为原始字符串捕获?然后我可以决定是使用本机解析器还是手动解析(希望有一个jquery插件).

我正在阅读的文章都来自不同的年份,所以我不知道jquery是否已经为json放弃了eval(),

谢谢

Mat*_*hen 5

最新版本有jQuery.parseJSON.它将在拥有它的浏览器中使用本机JSON.对于较旧的,它将进行正则表达式健全性检查,然后使用新的Function()(基本上是eval).

由于您将'json'指定为dataType,因此它将在此处使用parseJSON.这是在内部httpData函数中处理的