我对一些JSON数据有一个奇怪的问题。
{
"title" : "Counties",
"data": [
{
"Name": "Baker",
"latlng": [
"44.65488,-118.42475",
"44.64548,-118.38275",
"44.62488,-118.34425",
"0,0",
"1,0"
]
}
]
}
当我将.getJSON用于包含此数据的文件时,我收到语法错误但如果我从latlng数组中取出最后两个条目,它将正常工作。
我把JSON通过jsonlint.com上的linter放了,它说它是有效的JSON但是chrome和firefox由于某种原因无法解析它。
获取json文件的代码:
$(function() {
$.getJSON("json/counties.json", function(data){
console.log(data);
});
$(document).ajaxError(function(event, jqxhr, settings, exception){
console.log(exception);
});
});
从Chrome记录的异常
SyntaxError {}
从Firefox
记录的异常[15:07:33.965] (new SyntaxError("JSON.parse: unexpected non-whitespace character after JSON data", "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js", 3))
据我所知,数据中的JSON之后没有任何字符,这是一个屏幕截图
答案 0 :(得分:0)
您的代码对我来说一切正常,您显示的数据很好,因此您的环境中一定会发生奇怪的事情。
我建议的第一件事就是在Fiddler或浏览器的网络标签中查看您的原始HTTP响应,看看那里是否有任何意外 - 也许您已经有了代理服务器将垃圾附加到您的数据或类似的东西。
如果没有,那么尝试在二进制编辑器中打开你的counties.json
文件并查找其中的任何意外字节,可能是不可见的东西或时髦的引号或其他东西。在您的示例中,这是所有ASCII,因此很容易发现任何不属于的字符。