试图用jQuery解析JSON文件

use*_*607 4 jquery parsing json

我试图用精确的结构解析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"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用以下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>');
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

有什么我做错了吗?

Fel*_*ing 6

您没有访问正确的元素.data不指向students,它指向最外层的元素{students:...}(students是它的属性).该数组包含在data.students.student:

$.each(data.students.student, function() {
    //...
});
Run Code Online (Sandbox Code Playgroud)

附加说明:

  • 如果只访问一次属性,则不需要创建局部变量(当然它可能更具可读性).

  • 虽然连续分号;;没有错,但这是不必要的和令人困惑的(至少它让我感到困惑;))