2014-03-31 60 views
0

我想獲得的「OBJ」對象的長度,這樣我可以做的長度for循環吧,這裏是我的代碼:如何讓一個Ajax對象

var oRequest = new XMLHttpRequest(); 
var sURL = "/Users/files/Documents/time.json"; 
oRequest.open("GET",sURL,false); 
oRequest.send(); 
var txt = oRequest.responseText; 
var obj = eval ("(" + txt + ")"); 

我的目標是我想將這個time.json文件中的所有內容輸出到屏幕上。

這裏是我的JSON文件看起來像:

{ 
"employees": [ 
{ "firstName":"John" , "lastName":"Doe" }, 
{ "firstName":"Anna" , "lastName":"Smith" }, 
{ "firstName":"Peter" , "lastName":"Jones" } 
] 
} 
+0

obj.employees.length是你想要什麼 – mplungjan

+0

有你試過employees.length? – jeff

+1

'var obj = eval(「(」+ txt +「)」);'?我們不再處於黑暗時代。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse – Quentin

回答

0

你沒有拿到,以便爲循環做了一個對象,根據你的對象結構,你可以得到的數據長度以下循環:

for(var key in object) { 
    var o = object[key]; 

    for(var i = 0; i < o.length; i++) { 
     var user = o[i]; 

     alert(user.firstName); 
    } 
} 
+0

你在哪裏不使用長度? – mplungjan

+0

在第一個循環中。 – Bilal

+0

但是你在for循環中使用長度,這是OP想要的 – mplungjan

1

您創建的對象沒有長度。我假設你的意思是員工長度,而不是obj的長度

像這樣:

Live Demo

var txt = oRequest.responseText; 
// eval("var obj = "+txt); // eval is not recommended but here is how 
var obj = JSON.parse(txt); // this is better 
var emp = obj?obj.employees:[]; // if we have a useful object, get the employees 
window.onload=function() { 
    var empDiv = document.getElementById("empDiv"); 
    for (var i=0;i<emp.length;i++) { 
    empDiv.innerHTML+=emp[i].firstName + " "+ emp[i].lastName + '<br/>'; 
    } 
} 
相關問題