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

eval json data get different length in IE and firefox

本文关键字:firefox 数据 json IE eval      更新时间:2023-09-26

我通过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

我想知道为什么?

我猜服务器返回的数据后面有逗号,例如:

[1, 2, 3, ]

在IE中,这个数组将被解释为长度为4,而在标准兼容的浏览器中,它的长度将为3。

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

如果数组中有三个元素分别命名为012,则其length 3