我想从JSON数组中获取数据,如下所示,所以this.responceText
返回此数据。我尝试使用我的Javascript代码中的数据,但它不工作,也没有错误消息。我的代码中哪里出错?谢谢。如何使循环从JSON数组中获取数据
{"0":{"folder":"callofthewild","title":"Call of the Wild"},"1":{"folder":"2001spaceodyssey","title":"2001: A Space Odyssey "},"2":{"folder":"hobbit","title":"The Hobbit"},"4":{"folder":"pokemon","title":"I Choose You! (Pokemon Chapter Books)"},"5":{"folder":"alannathefirstadventure","title":"Alanna: The First Adventure (Song of the Lioness #1)"}}
我的一部分javascript;
var books = JSON.parse(this.responseText);
for (var i = 0; i < books.length; i++) {
var book = document.createElement("div");
var text = document.createElement("p");
var image = document.createElement("img");
image.src = "books/" + books.i.folder + "/cover.jpg";
text.innerHTML = books.i.title;
book.appendChild(image);
book.appendChild(text);
document.getElementById("allbooks").appendChild(book);
}
'books.length'将返回'undefined',因为你的JSON是不是一个数组,它是一个对象 –
如果你是一个创建服务器响应,考虑使用一个数组而不是一个对象,因为它没有任何意义,因为它是一个对象。 – James
'因为你的JSON不是一个数组,它是一个对象' - 实际上,JSON是一个字符串,OP处理的是一个普通的ol对象:p –