2013-06-26 5 views
1

J'essaie d'afficher les 5 meilleures vidéos d'une chaîne. Cependant, j'ai du mal à le limiter aux cinq.Nombre limite de résultats JSON

var playListURL = 'http://gdata.youtube.com/feeds/api/users/example/uploads?v=2&alt=json&callback=?'; 
var videoURL= 'http://www.youtube.com/watch?v='; 
$.getJSON(playListURL, function(data) { 
var list_data=""; 

    $.each(data.feed.entry, function(i, item) { 
      var feedTitle = item.title.$t; 
      var feedURL = item.link[1].href; 
      var fragments = feedURL.split("/"); 
      var videoID = fragments[fragments.length - 2]; 
      var url = videoURL + videoID; 
      var thumb = "http://img.youtube.com/vi/"+ videoID +"/default.jpg"; 
      list_data += '<a href="'+ url +'" title="'+ feedTitle +'"><div class="thumbcrop" style="background-image:url('+thumb+');background-size:cover; background-position:center;"></div></a>'; 
    }); 
$(list_data).appendTo(".videoClass"); 
}); 

Comment puis-je y parvenir? J'ai essayé (sans succès) des clauses telles que while(i<6) et if(i<6) mais aucun d'entre eux n'affiche aucun résultat.

+0

Y at-il une raison pour laquelle vous n'utilisez pas 'max-results' comme paramètre dans votre' playListURL'? Y a-t-il quelque chose que je n'attrape pas? – Puuskis

Répondre

3

Si vous ne voulez pas obtenir tous les résultats, n'utilisez pas chacun, ce qui fait parcourir tous les résultats en premier lieu. Aussi simple que cela. Pour nombre d'étapes limitées et connues utilisent une logique simple:

for (var i = 0; i <= 4; i++) { 
    var item = data.feed.entry[i]; 
    // your other stuff goes here 
} 

... ou, comme autre état correctement, ommettre votre requête par 5 en premier lieu, puis utiliser each librement.

+0

Merci! Je ne me suis pas rendu compte que «chacun» récupère tous les résultats. Je vais essayer ça! – Ben

3

Dans l'url que vous demandez vos résultats, vous pouvez ajouter des paramètres supplémentaires &max-results=5 afin que vous puissiez restreindre le nombre de vos flux.

de sorte que vous aurez

var playListURL = 'http://.../uploads?v=2&alt=json&max-results=5&callback=?'; 

Plus d'informations sur les données youtube api parameters

Questions connexes