2012-02-12 3 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/ –