5 votes

Créer/accéder à un objet JSON en utilisant jQuery $.ajax avec l'API Last.FM

J'ai récemment modifié la conception de mon site et je dois maintenant utiliser des requêtes AJAX dynamiques pour mes données. En gros, j'essaie de récupérer les données des utilisateurs en utilisant l'API Last.FM au format JSON.

Je suis novice en la matière, notamment en ce qui concerne JSON, et cela me donne un peu mal à la tête ! Je sais que je dois manquer quelque chose de simple.

Voici un code très basique pour tester la fonctionnalité mais il ne récupère rien !

<html>
<head>
    <script src="./jquery/jquery-1.4.4.js"></script>  
</head>
<body>
<script type="text/javascript">

$(document).ready(function() {  
    $.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json&callback=?", function(data) {
        $.each(data.topartists.artist, function(i,item){
            html += "<p>" + item.name + " - " + item.playcount + "</p>";    
        });
        $('#test').append(html);
    });
});
</script>

<div id="test"></div>

</body></html>

Des suggestions ?

J'aimerais pouvoir utiliser l'objet JSON tout au long de la page afin, par exemple, de pouvoir appeler à tout moment topartists.artist[i].playcount ; pour afficher le compte de lecture, etc. Comment puis-je faire cela ?

3voto

Val Points 7050

La variable html doit être déclarée en dehors de la portée de la fonction each :

  //var topArt;
 $(document).ready(function() {
    $.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json&callback=?", function(data) {
        var html = '';
        $.each(data.topartists.artist, function(i, item) {
            html += "<p>" + item.name + " - " + item.playcount + "</p>";
        });
        $('#test').append(html);
         // topArt = data.topartists;
    });
});

Pour ce qui est de votre deuxième question, vous aurez besoin d'une variable globale. Vous pouvez la placer avant $(document).ready() (comme indiqué dans le commentaire) et il sera accessible partout.

0voto

Tarun Nagpal Points 433

J'ai essayé l'URL suivante que vous utilisez "http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api\_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json&callback= ?"

Cela donne un json mal formé mais si j'utilise l'URL suivante "http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api\_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json"

J'ai le bon JSON.

Vous devrez également déclarer html comme la réponse donnée ci-dessus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X