J'essaye d'analyser un flux JSON en utilisant le LastFM API mais il y a certains éléments retournés dans le tableau JSON qui sont préfixés par un # que je ne sais pas comment référencer.Comment puis-je analyser cette donnée JSON particulière de LastFM en utilisant jQuery?
L'URL de flux est here et peut être vue visualised here.
Mon code jQuery donc ressemble beaucoup à ceci:
$.getJSON('http://ws.audioscrobbler.com/2.0/?method=geo.getevents&api_key=ca1599876cde298491941da8577de666&format=json&callback=?', function(data) {
$.each(data.events.event, function(i, item) {
html += "<li><a class='fm-event' href='" + item.url + "'><h4>" + item.title + "</h4>";
html += "<p>at " + item.venue.name + ", " + item.venue.location.city + "<br />";
html += "on " + item.startDate + "</p>";
html += "<img src='" + item.venue.image.text + "' />"; // This doesn't work. how do I do this?
html += "</a></li>";
});
$("#last-fm-events").append(html);
});
Je suis essentiellement une boucle à travers chaque élément dans l'alimentation et la construction de manière dynamique une liste qui est ensuite ajouté au DOM.
Ce que je n'arrive pas à comprendre, c'est comment obtenir les URL pour les éléments de l'image dans le flux. Il y en a différents pour différentes tailles. Le JSON pour les éléments d'image ressemble à ceci:
"image": [
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/34\/2243904.gif",
"size": "small"
},
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/64\/2243904.gif",
"size": "medium"
},
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/126\/2243904.gif",
"size": "large"
},
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/252\/2243904.gif",
"size": "extralarge"
},
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/_\/2243904\/A38.gif",
"size": "mega"
}
]
}
Mais je ne comprends pas pourquoi l'élément de texte dans le tableau est préfixé avec un # et comment obtenir l'URL d'une image d'une taille particulière. Toute aide appréciée car je suis un débutant jQuery! Merci.
Merci, c'est une excellente réponse qui m'aide à comprendre un peu plus sur JSON. Je suis également content que vous aussi trouviez un moyen un peu bizarre de retourner des données - je n'étais pas sûr si quelque chose me manquait!Quoi qu'il en soit, votre solution fonctionne parfaitement et je vous en suis très reconnaissant. –
@Dan Diplo: Excellent, content que cela ait aidé. Oui, le plus habituel JSON et JavaScript serait: '{" image ": {" small ":" http: \/\/userserve-ak.last.fm \/serve \/34 \ /2243904.gif ", "medium": "http: \/\/userserve-ak.last.fm \/serve \/64 \ /2243904.gif", ...}} 'Mais ils créent probablement ceci à la volée depuis un format source différent (XML, à partir de son apparence). –
Merci l'homme, bonne réponse. – Zach