Sto analizzando la risposta dall'API last.fm. Ma sembra che abbiano usato un wrapper per alcune delle risposte, il che sta causando un po 'di dolore. Per porre esempio:Gestione Jackson Elementi avvolti
{
"artists":{
"artist":[
{
"name":"Coldplay",
"playcount":"816763",
"listeners":"120815",
"mbid":"cc197bad-dc9c-440d-a5b5-d52ba2e14234",
"url":"http:\/\/www.last.fm\/music\/Coldplay",
"streamable":"1"
},
{
"name":"Radiohead",
"playcount":"846668",
"listeners":"99135",
"mbid":"a74b1b7f-71a5-4011-9441-d0b5e4122711",
"url":"http:\/\/www.last.fm\/music\/Radiohead",
"streamable":"1"
}
],
"@attr":{
"page":"1",
"perPage":"2",
"totalPages":"500",
"total":"1000"
}
}
}
Non solo la risposta è avvolto negli artisti oggetto, ma l'array dell'oggetto ha anche un involucro oggetto.
Quindi una classe wrapper come:
public class LastFMArtistWrapper {
public List<Artist> artists;
}
non avrebbe funzionato. Ho lavorato su questo, creando due classi wrapper, ma questo sembra davvero brutto. C'è un modo in cui possiamo usare qualcosa come @XMLElementWrapper in Jackson?
Un vantaggio di questa configurazione è che è estensibile. Se aggiungono più proprietà alla risposta JSON, puoi aggiungerle facilmente ai tuoi oggetti. Tuttavia, se lo si manipola, potrebbe essere necessario annullarlo in un secondo momento se il JSON cambia di nuovo. Potrebbe valere la pena tenere le cose così come sono. Questo è solo il mio suggerimento. Buona fortuna a trovare una risposta. +1 per la domanda. – jmort253