eval json数据在IE和firefox中获得不同的长度

时间:2011-07-14 02:38:51

标签: javascript json

我通过ajax从服务器获取了json数据:

request.responseText=[{name:xxx},{name:xxx},{name:xx}].

然后我使用

var data=eval(request.responseText);

alert(data.length);

在IE中,它是“4”,而在Firefox中它是“3”。

使用IE调试器我发现数据中的元素如下:

[Methods]
[0]
[1]
[2]

所以它的长度是4。

我想知道为什么?

2 个答案:

答案 0 :(得分:2)

我的猜测是服务器使用尾随逗号返回数据,例如:

[1, 2, 3, ]

在IE中,此数组将被解释为长度为4,而在符合标准的浏览器中,它的长度为3。

答案 1 :(得分:0)

[Methods]是调试器显示的一个单独节点,用于将函数与其他值分开 它实际上并不存在于对象中。

如果数组有三个名为012的项目,则其length 3