从JSON数据创建联系人表

我最近开始了一个关于HTML,JSON和jQuery的示范项目。 我想现在要实现的是从JSON文件中获取数据并将其加载到我的表中。 我是JSON的新手,所以花了我一天的时间,没有将数据加载到我的表中。

这是我的JSON文件'contact.json':

{
    "length": 2,
    "info": [
        {
            "fullname":"Noob Here",
            "email":"myemail@server.com",
            "phone":"123456",
            "badgeid": "11111",
        },
        {
            "fullname":"Newbie There",
            "email":"hisemail@server.com",
            "phone":"589433",
            "badgeid": "11112",
        }
    ]
}

我的脚本加载数据:

window.onload = function () {
    var contacts;
    setTimeout(loadData(contacts, "contact"), 2000);
    $(contacts.info).each(function(index, element){  
        $('#contacts').append('<tr><td>' + element.fullname + '</td><td>'
            + element.email + '</td><td>'
            + element.phone + '</td><td>'
            + element.badgeid + '</td></tr>');       
    })
};

function loadData(myobject, myfile){
    myobject = $.parseJSON("../data/" + myfile + ".json");
};

请注意,我可能想从各种JSON文件加载,因此loadData在那里有一些修正。 否则,它会直接解析JSON文件。

我已经在HTML中声明了一个'#contact'表。 错误控制台说:

未捕获的SyntaxError:意外的令牌。
jQuery.extend.parseJSONjquery.min.js:442
loadDataHomepage.html:23
在window.onload

为什么会出现此错误? 我该如何解决这个问题?


通过JSON验证程序运行JSON,例如JSONLint.com。 你的JSON中有语法错误:

{
    "length": 2,
    "info": [
        {
            "fullname":"Noob Here",
            "email":"myemail@server.com",
            "phone":"123456",
            "badgeid": "11111",  <---- Do not put a comma before a curly brace
        },
        {
            "fullname":"Newbie There",
            "email":"hisemail@server.com",
            "phone":"589433",
            "badgeid": "11112",  <---- remove comma before curly brace
        }
    ]
}

你的JSON应该看起来像这样:

{
    "length": 2,
    "info": [
        {
            "fullname":"Noob Here",
            "email":"myemail@server.com",
            "phone":"123456",
            "badgeid": "11111"
        },
        {
            "fullname":"Newbie There",
            "email":"hisemail@server.com",
            "phone":"589433",
            "badgeid": "11112"
        }
    ]
}

参考这篇文章

JSON.parse意外的字符错误

我知道你解析已经解析过的JSON

您可以按如下方式替换您的脚本:

    window.onload = function () {
       var contacts;
       $.getJSON('contact.json',function(contacts)
        {
          $(contacts.info).each(function(index, element){  
               $('#contacts').append('<tr><td>' + element.fullname + '</td><td>'
                 + element.email + '</td><td>'
                 + element.phone + '</td><td>'
                 + element.badgeid + '</td></tr>');       
           })  
        });
     };
链接地址: http://www.djcxy.com/p/48407.html

上一篇: Create contact table from JSON data

下一篇: Access / process (nested) objects, arrays or JSON