我正在解析来自 last.fm API 的响应。但似乎他们对某些响应使用了一些包装器,这造成了一些痛苦。举个例子:
{
"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"
}
}
}
不仅响应被包装在艺术家对象中,而且对象数组也有一个对象包装器。
所以像这样的包装类:
public class LastFMArtistWrapper {
public List<Artist> artists;
}
不会工作。我解决了这个问题,创建了两个包装类,但这看起来真的很难看。有什么方法可以在 Jackson 中使用 @XMLElementWrapper 之类的东西吗?