我有以下代码:
var default_links =
'{ "name" : "Google", "url": "https://encrypted.google.com/", "fav_url": "https://encrypted.google.com/favicon.ico" }\n'+
'{ "name" : "Yahoo", "url": "http://www.yahoo.com/", "fav_url": "http://www.yahoo.com/favicon.ico" }\n'+
'{ "name" : "GMail", "url": "https://mail.google.com/", "fav_url": "https://mail.google.com/favicon.ico" }\n'+
'{ "name" : "Twitter", "url": "https://www.twitter.com/", "fav_url": "https://www.twitter.com/favicon.ico" }\n'+
'{ "name" : "Facebook", "url": "https://www.facebook.com/", "fav_url": "https://www.facebook.com/favicon.ico" }\n'+
'{ "name" : "Wikipedia", "url": "https://en.wikipedia.org/", "fav_url": "http://en.wikipedia.com/favicon.ico" }\n';
function write_links()
{
var linkdata = default_links.split("\n");
for (i = 0; i < linkdata.length; i++)
{
var link = JSON.parse(linkdata[i]);
document.getElementById("useful_links").innerHTML += '<a href=\"' + link.url + '"><img src="' + link.fav_url + '">' + link.name + '</a><br>';
}
}
所有行都被完美解析;但最后,我发现以下内容:
[xx:xx:xx.xxx] SyntaxError: JSON.parse: unexpected end of data @ http://127.0.0.1/homepage.html:33
什么可能导致这种情况?
(我知道糟糕的设计:分割 \n
等;我这样做只是为了解决某些不需要在此处指定的问题。)
最佳答案
您在最后一个条目的末尾有一个新行。这意味着当您拆分新行时,数组中的最后一项将是一个空字符串。空字符串不是有效的 JSON。
关于javascript - JSON.parse 提示 "unexpected end of data",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805964/