我正在尝试使用下面的确切结构来解析JSON文件。
{ "students": { "student": [ { "id": 1, "name": "John Doe", "image": "pic1.jpg", "homepage": "http: //www.google.com" }, { "id": 2, "name": "Jane Doe", "image": "pic1.jpg", "homepage": "http: //www.google.com" } ] } }
我正在使用以下jQuery函数:
function GetStudents(filename) { $.getJSON(filename, function(data){ $.each(data.student, function(i,s){ var id = s.id;; var name = s.name;; var img = s.image;; var homepage = s.homepage; $('.networkTable').append('<tr><td><img src="' + img + '" class="picEven pic" width="33" height="35"></td><td><a href="'+ homepage + '" class="networkLink">' + name + '</a></td></tr>'); }); }); }
我做错什么了吗?
您没有访问正确的元素。data不指向students,它指向最外面的元素{students:...}(students是它的属性)。该数组包含在data.students.student:
data
students
{students:...}
data.students.student
$.each(data.students.student, function() { //... });
进一步说明:
如果仅访问属性一次,则无需创建局部变量(但当然,它可能更易读)。
虽然连续使用分号;;是没有错的,但这是不必要和令人困惑的(至少这使我感到困惑;)
;;