2012-03-04 3 views
0

json 객체를 얻으려면이 코드가 있어야합니다.정의되지 않은 읽기 JSON

$.getJSON("http://api.songkick.com/api/3.0/artists/" + artist_id + "/calendar.json?apikey=Key&jsoncallback=?", function callback(json) { 

    $.each(json["resultsPage"], function (i, entry) { 
     alert(entry.totalEntries); 
    }); 
}); 

예술가에 대한 데이터가 없을 때 나는이 얻을 코드를 실행하면 :

?({"resultsPage":{"results":{},"totalEntries":0,"perPage":50,"page":1,"status":"ok"}}) 

내가 원하는 것은 검증하기 totalEntries의 값을 얻는 것입니다 일부 데이터하지만이있는 경우 계속 정의되지 않는다. 나는 값을 보여주기 위해 경고를 사용하고 있습니다.

무엇이 문제 일 수 있으며 totalEntries를 얻거나 쿼리에 뭔가 도움이되는지 확인하는 더 좋은 방법 일 수 있습니다.

좋은 일 (뭔가 발견하면) :

{"resultsPage":{"results":{"artist":[{"uri":"http:\/\/www.songkick.com\/artists\/462022-britney-spears?utm_source=11548&utm_medium=partner","displayName":"Britney Spears","id":462022,"onTourUntil":null,"identifier":[{"href":"http:\/\/api.songkick.com\/api\/3.0\/artists\/mbid:45a663b5-b1cb-4a91-bff6-2bef7bbfdd76.json","eventsHref":"http:\/\/api.songkick.com\/api\/3.0\/artists\/mbid:45a663b5-b1cb-4a91-bff6-2bef7bbfdd76\/calendar.json","mbid":"45a663b5-b1cb-4a91-bff6-2bef7bbfdd76","setlistsHref":"http:\/\/api.songkick.com\/api\/3.0\/artists\/mbid:45a663b5-b1cb-4a91-bff6-2bef7bbfdd76\/setlists.json"}]},{"uri":"http:\/\/www.songkick.com\/artists\/5034848-hits-of-pink-christina-aguilera-britney-spears-and-motley-crue?utm_source=11548&utm_medium=partner","displayName":"Hits of Pink, Christina Aguilera, Britney Spears and M\u00f6tley Cr\u00fce","id":5034848,"onTourUntil":null,"identifier":[]},{"uri":"http:\/\/www.songkick.com\/artists\/2885106-kimberly-dale-as-britney-spears?utm_source=11548&utm_medium=partner","displayName":"Kimberly Dale As Britney Spears","id":2885106,"onTourUntil":null,"identifier":[]}]},"totalEntries":3,"perPage":50,"page":1,"status":"ok"}} 
+1

내 의견으로 인해 삭제 된 그것은 쓰레기였다. 방금 JSONP 일 수 있다는 것을 기억했습니다 – devnull69

답변

0

당신은 "resultsPage"의 필드 반복하고,하지 "resultsPage"자체에 있습니다.

alert(json.resultsPage.totalEntries); // Without the "each", you don't need it 

테스트 (특별한 순서없이) 스스로가,

$.each(json["resultsPage"], function (i, entry) { 
    alert([i, entry]); 
}); 

에 코드를 변경하고 경고합니다 : 나는 당신이 의미하는 것은 생각

results, [object Object] 
totalEntries, 0 
perPage, 50 
page, 1 
status, ok 
+0

Definetly ... 이제 작동 중입니다 !! 고맙습니다! – user950906

관련 문제