-1

我对一些 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 之后没有任何字符,这是一个屏幕截图

截屏

4

1 回答 1

0

您的代码对我来说一切正常,并且您显示的数据也很好,因此您的环境中肯定发生了一些奇怪的事情。

我建议的第一件事是在 Fiddler 或浏览器的网络选项卡中查看您的原始 HTTP 响应,看看那里是否有任何意外 - 也许您有一个代理服务器将垃圾附加到您的数据或类似的东西。

如果没有,请尝试在二进制编辑器中打开counties.json文件并在其中查找任何意外字节,可能是不可见的或时髦的引号之类的。在您的示例中,这都是 ASCII,因此应该很容易发现任何不属于的字符。

于 2013-08-12T20:31:44.137 回答