这是处理 fanart.tv 网络服务响应 JSON 和 C#的后续内容
因此,对于艺术家,您会得到一个响应,其中主要元素的名称与艺术家相同(因此,您将网络服务称为 Metallica 的拇指,它称为 Metallica 的根,您将其称为 Megadeth 称为 Megadeth)
上一个问题解决了这个问题,但下一个阶段是专辑,它最终包含两个级别的这些动态命名的元素,因此搜索特定专辑,你会得到
{"Metallica":{"mbid_id":"65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab","albums":{"f44f4f73-a714-31a1-a4b8-bfcaaf311f50":{"albumcover":[{"id":"51252","url":"http://assets.fanart.tv/fanart/music/65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab/albumcover/kill-em-all-504c485914b25.jpg","likes":"2"}]}}}}
因此,您拥有具有动态名称的相同顶级艺术家详细信息,但现在对于专辑,您有一个以 MusicbrainzID 命名的元素,然后是拇指集合。
对于艺术家的详细信息,我定义了类
public class ArtistThumbs
{
public string Name { get; set; }
[JsonProperty("mbid_id")]
public string MusicBrainzID { get; set; }
[JsonProperty("artistthumb")]
public List<Thumb> Thumbs { get; set; }
}
和
public class Thumb
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("url")]
public string Url { get; set; }
[JsonProperty("likes")]
public string Likes { get; set; }
}
然后我可以将艺术家反序列化为 JSON
var artistthumbs = JsonConvert.DeserializeObject<Dictionary<string, Artist>>(json);
问题是我怎样才能对这些专辑做同样的事情?如果可能的话,我真的需要尝试并坚持下去,JsonConvert.DeserializeObject
并且真的想反序列化到类,但我不知道如何为类建模