大家好,我是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语法中不允许使用逗号。