JQuery没有';不接受JSON为有效

JQuery没有';不接受JSON为有效,jquery,ajax,json,Jquery,Ajax,Json,我现在有一个让我发疯的问题。通过JQuery,我从服务器请求一个JSON文档,但不被接受(错误是“意外字符”)。然而,我的JSON文档似乎很好,在Firebug中,即JSON数据被正确检测和解析 如果我复制响应并尝试通过jsonlint.com验证它,它在第一个字符([)上总是失败。如果我更改了一些字符并复制了一些内容,但保留了相同的结果,那么它将进行验证(例如尝试复制[]然后删除并再次写入,再次粘贴内容,您就拥有了相同的文档,但它现在验证了)。奇怪。因此我认为这可能与编码有关,但firefox

我现在有一个让我发疯的问题。通过JQuery,我从服务器请求一个JSON文档,但不被接受(错误是“意外字符”)。然而,我的JSON文档似乎很好,在Firebug中,即JSON数据被正确检测和解析

如果我复制响应并尝试通过jsonlint.com验证它,它在第一个字符(
[
)上总是失败。如果我更改了一些字符并复制了一些内容,但保留了相同的结果,那么它将进行验证(例如尝试复制
[]
然后删除并再次写入,再次粘贴内容,您就拥有了相同的文档,但它现在验证了)。奇怪。因此我认为这可能与编码有关,但firefox明确指出所有内容都是UTF8编码的

现在我有点不知所措,我希望你能以任何方式帮助我

以下是我的服务器的JSON响应:

[
    {
    "id": 67,
    "startdate": "01.01.1970 01:00:00",
    "hometeam": "EHC Muskrats",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 69,
    "startdate": "01.01.1970 01:00:00",
    "hometeam": "EC Mammuts",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 70,
    "startdate": "01.01.1970 01:00:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "EC Mammuts"
} ,         {
    "id": 86,
    "startdate": "01.01.1970 01:00:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "EC Mammuts"
} ,         {
    "id": 4,
    "startdate": "08.10.2012 21:00:00",
    "hometeam": "Wiener Teifl",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 18,
    "startdate": "28.10.2012 21:00:00",
    "hometeam": "EC Heizbären",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 19,
    "startdate": "04.11.2012 18:00:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "Innviertel Penguins"
} ,         {
    "id": 6,
    "startdate": "15.11.2012 21:00:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "EC Heizbären"
} ,         {
    "id": 62,
    "startdate": "17.11.2012 19:30:00",
    "hometeam": "EC V.U. Totonka",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 12,
    "startdate": "22.11.2012 20:30:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "EHC Muskrats"
} ,         {
    "id": 13,
    "startdate": "27.11.2012 19:30:00",
    "hometeam": "TÜV Cannibals",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 7,
    "startdate": "02.12.2012 17:00:00",
    "hometeam": "Fire Fighters jun.",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 63,
    "startdate": "03.12.2012 19:00:00",
    "hometeam": "",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 8,
    "startdate": "09.12.2012 17:00:00",
    "hometeam": "EHC Vienna Flames",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 14,
    "startdate": "17.12.2012 20:15:00",
    "hometeam": "EC Mammuts",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 15,
    "startdate": "07.01.2013 20:15:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "EC Mammuts"
} ,         {
    "id": 9,
    "startdate": "10.01.2013 20:00:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "EHC Chiefs"
} ,         {
    "id": 11,
    "startdate": "19.01.2013 21:00:00",
    "hometeam": "EC Attacki",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 16,
    "startdate": "24.01.2013 20:30:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "TÜV Cannibals"
} ,         {
    "id": 10,
    "startdate": "28.01.2013 19:30:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "EC V.U. Totonka"
} ,         {
    "id": 17,
    "startdate": "30.01.2013 20:30:00",
    "hometeam": "EHC Muskrats",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 65,
    "startdate": "24.02.2013 21:00:00",
    "hometeam": "EC Heizbären",
    "awayteam": "EHC Vienna Wookies"
} ,         {
    "id": 66,
    "startdate": "28.02.2013 20:40:00",
    "hometeam": "EHC Vienna Wookies",
    "awayteam": "EHC Chiefs"
} ,         {
    "id": 64,
    "startdate": "08.03.2013 21:00:00",
    "hometeam": "EHC Vienna Flames",
    "awayteam": "EHC Vienna Wookies"
}     ]

JSON第一行的新行字符有问题。如果您无法在服务器上修复它,请尝试在javascript中解析JSON响应之前替换这些字符。

在ID 67之前,您有JSON中的
。如果您删除它,它将有效。虽然它没有显示在此处。但是如果您尝试在此处,您将看到一个eid 67前的xtra
(dot)

  • 在使用Json之前,请在服务器端正确解析它

  • 感谢拉维给我指出了正确的方向。JSON中有一个不可见的字符破坏了JQuery JSON解析器


    服务器端的问题是1(!)我所有的文件都编码为UTF8+BOM:-<可能早就想到了。更改编码解决了这个问题。

    这不是有效的json。检查这里,您的json结构中很可能有一个非打印字符,这会阻塞解析器。在解析数据之前,请验证数据源并确保传入数据是干净的。ID 67之前,yo你有JSON格式的
    。如果你删除它,它将有效。虽然它没有显示在这里。但是如果你尝试在这里,你会看到id 67之前有一个额外的
    。谢谢,这似乎是个问题。问题是这个点没有显示在我的任何编辑器中(即使所有非打印字符都显示出来)。我还发现,如果我删除
    [
    也会消失(没有任何其他更改)-顺便说一句,不管我使用什么编辑器。有什么建议吗?经过进一步研究,我发现
    不是
    [
    造成
    的原因。是PHP代码
    产生了它:-(