Jquery 确定IE8及以下版本的JSON解析内容

Jquery 确定IE8及以下版本的JSON解析内容,jquery,json,Jquery,Json,全部,, 我有以下代码: onDone: function (e, data) { var result = jQuery.parseJSON(data.result); var uploadType = result.upload_type; var filename = result.name; var insert_id = result.insert_id; } 当我运行此命令时,IE出现以下错误: Message: 'upload_type' is null or not an ob

全部,, 我有以下代码:

onDone: function (e, data) {
var result = jQuery.parseJSON(data.result);
var uploadType = result.upload_type;
var filename = result.name;
var insert_id = result.insert_id;
}
当我运行此命令时,IE出现以下错误:

Message: 'upload_type' is null or not an object 我试图了解为什么我会在IE8中收到错误消息,但我看不到正在解析什么。当我发出这样的警报时:

var result = jQuery.parseJSON(data.result);
alert(result)
我得到零,但不知道为什么

对于如何读取它,或者为什么即使返回的字符串中有数据,我的JSON解析结果也是空的,我们都非常感谢您的帮助

谢谢

或许可以在IE中尝试一下:

alert(data.result);

这将为您提供JSON的字符串值。

数据。结果
已被解析,无需
$.parseJSON
。删除此行:

var result = jQuery.parseJSON(data.result);
此外,JSON对象是一个(对象的)数组。尝试从数组中的第一个对象获取属性

var uploadType = data.result[0].upload_type;

data.result
已经是一个对象


您得到的是
null
,因为当的参数不是
string
类型时,jQuery返回
null
,我终于找到了解决方案,这是一个问题,因为IE不支持XHR上传。您可以通过查看此帖子找到对此的详细解释:

但这并不能完全解决我的需求,因为这些代码只适用于IE,我需要跨浏览器工作。我稍微更新了我的代码,如果您在此处查看接受的答案:


您将了解如何为XHR类型的上传处理来自IE的JSON响应

这就给了我[object object]
parseJSON
是用来解析字符串的。如果
警报(data.result)
向您提供
[object]
,则表示可能已经对其进行了分析。试试
alert(data.result[0].name)
@cdmckay:我没有意识到(我没有咖啡了)<代码>数据。结果已经被解析。@Rocket:我明白了。这意味着OP需要做的就是为数组编制索引。@cdmckay我在尝试警报(data.result[0].name)@user1048676:删除
parseJSON
行时未定义。另外,请尝试
data.result[0]。上传类型
,您的数据是一个数组(对象)。正如@Rocket所建议的。删除带有
parseJSON
的行,这样jQuery就不会返回
null
。在此之后,您应该能够使用
data.result[0]获取数据。上传类型
我这样做时没有定义。console.log(data.result[0])
说什么?我认为IE只是在您记录对象时打印出非常有用的
[Object Object]
。它只是说[然后它给了我一个错误,并说结果未定义。@Rocket为了防止您好奇,我进一步缩小了问题的范围。查看这里的这篇文章:我仍然不知道如何解决我的问题,但应该为您解释为什么不同的浏览器返回不同的结果!
var uploadType = data.result[0].upload_type;