2011-07-14 84 views
0

不同的長度我通過AJAX從服務器得到JSON數據:EVAL JSON數據得到在IE和Firefox

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] 

所以ITIS長度爲4

我不知道爲什麼?

+0

什麼是** **確切字符串?從服務器 – SLaks

+0

數據:[{名稱:「KK」,年齡:30,ID:0},{名稱:「kddk」,年齡:20,ID:1} {名:「kkdd」,年齡:330,ID :3}] – hguser

+0

hguser:該數據在其中有語法錯誤。 – airportyh

回答

2

我的猜測是,服務器具有尾隨逗號返回的數據,例如:

[1, 2, 3, ] 

在IE中,此陣列將被解釋爲具有長度爲4,而在標準兼容的瀏覽器,就會產生長度3

+0

謝謝!!!!!!就像你猜到的一樣,還有一個額外的commoa – hguser

0

[Methods]是由調試器顯示從其它值分離的功能的單獨的節點。
它實際上並不存在於對象中。

如果數組有一個名爲01三個項目,並2,其length3

+0

但是,當我提醒它時,它的值是4 – hguser