Javascript JSON.parse抱怨;“数据意外结束”;

Javascript JSON.parse抱怨;“数据意外结束”;,javascript,json,Javascript,Json,我有以下代码: 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.co

我有以下代码:

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>';
    }
}
这是什么原因造成的


(我知道这个糟糕的设计:拆分
\n
等等;我这样做只是为了解决一些不需要在这里指定的问题。)

您在最后一个条目的末尾有一个新行。这意味着在新行上拆分时,数组中的最后一项是空字符串。空字符串不是有效的JSON。

在上一个条目的末尾有一个新行。这意味着在新行上拆分时,数组中的最后一项是空字符串。空字符串不是有效的JSON。

for(i=0;i for (i = 0; i < linkdata.length - 1; i++) 
在循环条件中添加-1。使用换行符拆分将创建空数组。所以在运行最后一个循环后,它将通过错误。我们不能空着。否则,删除(i=0;i
在循环条件中添加-1。使用换行符拆分将创建空数组。所以在运行最后一个循环后,它将通过错误。我们不能空着。否则,删除默认链接中的最后一个换行符字符串,然后它将尝试在索引
-1
处解析项目,然后它将尝试在索引
-1
处解析项目
 for (i = 0; i < linkdata.length - 1; i++)