我有简单的网络计算器和JSON打印机。计算器工作正常,但是当我尝试从JSON文件打印数据时,我在JSON中收到错误“Unexpected token”。问题是我已经删除了这个“]”,但在刷新网站或重置http-server之后我仍然收到此错误,而我的JSON看起来与之前完全相同。这有什么问题?
我的JS:
'use strict';
var showData = (function() {
var xmlhttp = new XMLHttpRequest(),
url = "games.json";
return {
gamesData: function() {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var myArr = JSON.parse(xmlhttp.responseText);
showGames(myArr);
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
};
})();
function showGames(arr) {
var out = "";
var i;
for(i = 0; i < arr.length; i++) {
out += '<p>Title: ' + arr[i].title + '</p>' + '<p>Producer: ' + arr[i].producer + '</p>' + '<p>Release date: ' + arr[i].release + '</p>' + '<p>Genre: ' + arr[i].genre + '</p>';
}
document.getElementById("games-data").innerHTML = out;
}
我的JSON:
[
{
"title" : "Diablo",
"producer" : "Blizzard",
"release" : 1996,
"genre" : "hack'n'slash"
},
{
"title" : "Diablo 2",
"producer" : "Blizzard",
"release" : 2000,
"genre" : "hack'n'slash"
},
{
"title" : "Diablo 3",
"producer" : "Blizzard",
"release" : 2012,
"genre" : "hack'n'slash"
},
{
"title" : "Overwatch",
"producer" : "Blizzard",
"release" : 2016,
"genre" : "FPS"
},
{
"title" : "Heroes of the Storm",
"producer" : "Blizzard",
"release" : 2015,
"genre" : "MOBA"
},
{
"title" : "FIFA 16",
"producer" : "EA Sports",
"release" : 2015,
"genre" : "Sport"
},
{
"title" : "Team Fortress 2",
"producer" : "Valve",
"release" : 2007,
"genre" : "FPS"
}
]
我正在尝试将showData.gamesData()称为js onlick方法,但我得到了这个json错误。当我点击链接到错误时,它突出显示“暗黑破坏神2”之后的昏迷,但我已在此主题中写过错误。