获取嵌套JavaScript对象的长度

时间:2017-03-30 13:00:01

标签: javascript arrays json

我想用数据库中的元素填充列表。数据来自JSON格式的PHP文件。 JSON看起来像这样:

{"Venues" : [{"name":"McManus Galleries","id":"1"},{"name":"Dundee Law","id":"2"},{"name":"University of Abertay","id":"3"},{"name":"Baxter Park","id":"4"},{"name":"Overgate Shopping Centre","id":"5"}]}

现在我使用以下代码处理此文本:

obj = JSON.parse(this.responseText);

document.getElementById("list").innerHTML = "<a onclick='getVenue("+obj.Venues[0].id + ")'>" + obj.Venues[0].name + "</a><br>";
document.getElementById("list").innerHTML += "<a onclick='getVenue("+obj.Venues[1].id + ")'>" + obj.Venues[1].name + "</a><br>";

......它确实有效,但现在我想用for-loop这样做,所以无论“场地”包含多少项,它都会在列表中显示它们。我现在得到了这个代码:

for(i = 0; i < obj.length; i++){
  document.getElementById("list").innerHTML += obj.Venues[i].name;
}

这里的问题是,obj.length返回1.有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

obj是具有子Venues的主要对象(这是一个用于迭代的数组,如下所示)

&#13;
&#13;
for(i = 0; i < obj.Venues.length; i++){
  document.getElementById("list").innerHTML += obj.Venues[i].name;
}
&#13;
&#13;
&#13;