これは、fanart.tv Web サービス応答の JSON と C# の処理からの続きです。
したがって、アーティストの場合、主要な要素がアーティストと同じ名前である応答を取得します (したがって、Metallica の親指の Web サービスを呼び出します。ルートは Metallica と呼ばれ、Megadeth の場合は Megadeth と呼ばれます)。
前の質問はそれを解決しますが、次の段階はアルバムであり、これらの動的に名前が付けられた要素の 2 つのレベルを含むことになるため、特定のアルバムを検索すると、
{"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
可能であれば、私は本当に試して固執する必要があり、本当にクラスに逆シリアル化したいのですが、クラスをモデル化する方法がわかりません