如何获取ajax对象的长度

时间:2014-03-31 12:29:41

标签: javascript json

我想得到'obj'对象的长度,以便我可以用它进行for循环,这是我的代码:

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" }
]
}

2 个答案:

答案 0 :(得分: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/>';
  }
}

答案 1 :(得分:0)

根据您的对象结构,您不必获取长度以便在对象上执行for循环,您可以使用以下循环获取数据:

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

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

      alert(user.firstName);
   }
}