2

私は今、私を夢中にさせる問題を抱えています。JQueryを介して、サーバーにJSONドキュメントを要求しますが、これは受け入れられません(エラーは「予期しない文字」です)。ただし、FirebugではJSONドキュメントは問題ないようです。つまり、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"
}     ]
4

3 に答える 3

3

JSON の 1 行目の改行文字に問題があります。サーバーで修正できない場合は、JavaScript で JSON 応答を解析する前に、これらの文字を置き換えてみてください。

于 2013-03-11T11:30:32.180 に答える
3

ID 67 より前は.、JSON にあります。これを外すと。有効になります。ここには表示されませんが。しかし、ここで試してみると. (dot)、ID 67 の前に エクストラが表示されます。JSON を確認してください。. (dot)ID 67 の前を削除

  1. Jsonを使用する前に、サーバー側で適切に解析してください。
于 2013-03-11T11:31:36.313 に答える
0

私を正しい方向に向けてくれたRaviに感謝します。JSONにJQueryJSONパーサーを壊した目に見えない文字がありました。

サーバー側の問題は、すべてのファイルの1(!)がUTF8 + BOMでエンコードされていることでした:-<以前に考えていたかもしれません。エンコーディングを変更すると解決しました。

于 2013-03-11T15:08:17.810 に答える