javascript - JSON.parse 提示 "unexpected end of data"

标签 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.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/

相关文章:

javascript - ParseFile javascript - 保存为字节

javascript - 传单 geojson 样式函数功能仅颜色 1 geojson 功能

python - json.dumps() : escaping forward slashes

java - 我必须解析 JSON 响应,我必须获取 leet talk 下的子节点(包含符号、字符、数字的随机字符串)

javascript - 从 jquery 获取数据 ID

javascript - 是否可以在 ractive init 之后定义函数和计算属性?

javascript - Nordic JavaScript 编码问题

json - Twitter Rest API 不接受 Swift 中 token 的 header

json - 服务器客户端应用程序API设计

json - 如何在 JSON 模式中扩展模式?