大家好,我是javascript的新手,我正在通过Tim Wright的“ Learning Javascript”工作。我正在尝试使用JSON.parse从字符串转换,但是当我运行代码时,在第26行遇到错误Uncaught SyntaxError:Unexpected token},但在第26行看不到}。我尝试了复制和粘贴pdf中的代码,以查看我是否做错了什么,但仍然给出相同的错误。

//create an instance of the xmlhttrequest

function getHTTPObject() {

    //initialize the variable
    var xhr;

    if (window.XMLHttpRequest) {
        xhr= new XMLHttpRequest();
    }else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    return xhr;
}//end getHTTPObject

function ajaxCall(dataUrl, callback) {

    var request = getHTTPObject();


    request.onreadystatechange = function() {
        if ( request.readyState === 4 && request.status === 200) {

            var contacts = JSON.parse(request.responseText);

            if(typeof callback === "function") {
                callback(contacts);
            }//end function check
        }//end ajax status check

    } //end onreadystatechange
    request.open("GET", dataUrl, true);
    request.send(null);
}




ajaxCall('data/contacts.json');


我知道我可能只是缺少一些明显的东西,但是我看不到它。谢谢您的帮助。

更新这里是我的json文件的样子:

{  "addressBook" : [


    {
        "name": "Elysha",
        "email":"elysha@gmail.com",
    },

    {
        "name": "Luke",
        "email":"lukerobingregory@gmail.com",
    },

    {
        "name": "Dad",
        "email":"dad@gmail.com",
    },

    {
        "name": "Mum",
        "email":"mum@gmail.com",
    }



]


}

最佳答案

JSON字符串中有一个逗号结尾:

{
    "name": "Mum",
    "email":"mum@gmail.com",
}                          ^-- remove this comma, and corresponding commas in all the other "objects".

尽管您可以在JS对象文字中使用逗号结尾,但是JSON语法中不允许使用逗号。

08-08 05:16