JSON数据问题

时间:2013-08-12 19:49:37

标签: javascript json

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

Screen Shot

1 个答案:

答案 0 :(得分:0)

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

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

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