2012-02-12 12 views
2

JQueryでいくつかのJSONにアクセスする必要があります。何らかの理由で、動作していないし、getJSONメソッドが黙って失敗するため、何が間違っているのか理解できません。 JSON URLが正しいことを確認しました。ありがとう!JQueryを使用したJSONへのアクセス

HTML:

<html> 
<head> 
    <script src="//code.jquery.com/jquery-1.6.4.min.js"></script> 
<script type="text/javascript"> 
     $(document).ready(function(){ 
     $.getJSON('../src/json/baseball.json', function(data) { 
      $("#add").html(data.baseball[0].levels[0].games[0].versus); 
     }); 
     }); 
    </script> 
</head> 
<body> 
    <p id= "add"></p> 
</body> 
</html> 

JSON:

{"baseball": 
[{ 
    "gender":"boys", 
    "levels":[ 
    { 
     "level": "varsity", 
     "games":[ 
     { 
      "versus":"Fullerton", 
      "homeaway":"Home", 
      "month":"February", 
      "date":"27", 
      "year":"2012", 
      "troyscore":"32", 
      "vsscore":"41", 
     }, 
     { 
      "versus":"Sunny Hills", 
      "homeaway":"Away", 
      "month":"March", 
      "date":"28", 
      "year":"2012", 
      "troyscore":"20", 
      "vsscore":"17", 
     }] 
    }, 
    { 
     "level": "jv", 
     "games":[ 
     { 
      "versus":"Sonora", 
      "homeaway":"Home", 
      "month":"January", 
      "date":"20", 
      "year":"2012", 
      "troyscore":"15", 
      "vsscore":"21", 
     }, 
     { 
      "versus":"Valencia", 
      "homeaway":"Away", 
      "month":"April", 
      "date":"30", 
      "year":"2012", 
      "troyscore":"40", 
      "vsscore":"1", 
     }] 
    }] 
}, 
{ 
    "gender":"girls", 
    "levels":[ 
    { 
     "level": "varsity", 
     "games":[ 
     { 
      "versus":"Acacia", 
      "homeaway":"Home", 
      "month":"February", 
      "date":"27", 
      "year":"2012", 
      "troyscore":"32", 
      "vsscore":"41", 
     }, 
     { 
      "versus":"LV", 
      "homeaway":"Away", 
      "month":"March", 
      "date":"28", 
      "year":"2012", 
      "troyscore":"20", 
      "vsscore":"17", 
     }] 
    }, 
    { 
     "level": "jv", 
     "games":[ 
     { 
      "versus":"Commonwealth", 
      "homeaway":"Home", 
      "month":"January", 
      "date":"20", 
      "year":"2012", 
      "troyscore":"15", 
      "vsscore":"21", 
     }, 
     { 
      "versus":"Xishan", 
      "homeaway":"Away", 
      "month":"April", 
      "date":"30", 
      "year":"2012", 
      "troyscore":"40", 
      "vsscore":"1", 
     }] 
    }] 
}] 
} 
+0

URLはファイルシステムのパスと同じように動作するのが一般的ですが、AFAIKは必須ではありません。サーバーはセキュリティ上の理由から「...」が「親ディレクトリ」を意味することは知らないかもしれません。あなたは絶対URLを試しましたか? – cHao

+0

'$("#add ")...'の前に 'console.log(data)'を置くと、コンソールに何が表示されますか? – fncomp

答えて

3

あなたの内側のオブジェクトの最終的な特性のそれぞれはコンマ末尾いる、あなたのJSONがひどく形成されます。それをjsonlint.comに貼り付けてみてください。すべてのオブジェクトの最後のプロパティでワインになります。

{ 
     "versus":"Fullerton", 
     "homeaway":"Home", 
     "month":"February", 
     "date":"27", 
     "year":"2012", 
     "troyscore":"32", 
     "vsscore":"41", <-- borked JSON 
    }, 

苦情:返されるJSONは厳密に整形式でない場合

Parse error on line 67: 
...     },     
-----------------------^ 
Expecting 'STRING' 

$.getJSONは黙って失敗します。私はドキュメントからリファレンスを提供したいが、jQueryサイトがダウンしているようだ... bleh。

+0

IE以外のブラウザでも動作しますが、動作しない理由ではありません。 – ShankarSangoli

+0

ブラウザに関しては必ずしも必要ではありません.jQueryについては、整形式のJSONを受け入れるだけです。 – karim79

+0

@ShankarSangoli:これはJavaScriptではなくJSONです。それらは、異なる規則を有する異なる仕様である。 http://jsfiddle.net/5n8Qz/ –

関連する問題