第 26 行的意外令牌 },但第 26 行 AJAX 调用上没有 }

unexpectected token } on line 26 but there is no } on line 26 ajax call

本文关键字:调用 AJAX 意外 令牌 但第      更新时间:2023-09-26

大家好,我是javascript的新手,我正在通过Tim Wright的"学习Javascript"来学习。我正在尝试使用 JSON.parse 从字符串转换,但是当我运行代码时出现错误 未捕获的语法错误:第 26 行出现意外的令牌 },但我在第 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 语法中不允许这样做。