Salut tout le monde !

Je voudrait désérialiser un objet JSON reçut de l'API d'Itunes.
Voici la réponse que je reçoit : "Tous les albums du groupe Muse" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
   "resultCount":50,
   "results":[
      {
         "wrapperType":"collection",
         "collectionType":"Album",
         "artistId":1093360,
         "collectionId":326492721,
         "amgArtistId":142116,
         "amgVideoArtistId":null,
         "artistName":"Muse",
         "collectionName":"The Resistance",
         "collectionCensoredName":"The Resistance",
         "artistViewUrl":"http://itunes.apple.com/us/artist/muse/id1093360?uo=4",
         "collectionViewUrl":"http://itunes.apple.com/us/album/the-resistance/id326492721?uo=4",
         "artworkUrl60":"http://a3.mzstatic.com/us/r1000/007/Music/79/84/54/mzi.alpkhceo.60x60-50.jpg",
         "artworkUrl100":"http://a5.mzstatic.com/us/r1000/007/Music/79/84/54/mzi.alpkhceo.100x100-75.jpg",
         "collectionPrice":11.99,
         "collectionExplicitness":"notExplicit",
         "contentAdvisoryRating":null,
         "trackCount":12,
         "copyright":"2009 Warner Music UK Limited",
         "country":"USA",
         "currency":"USD",
         "releaseDate":"2009-09-11T07:00:00Z",
         "primaryGenreName":"Alternative"
      },
      {
         "wrapperType":"collection",
         "collectionType":"Album",
         ... etc.
Si j'utilise ce contrat de données, pour ne récupérer que le nom des albums, cela marche très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Contrat de données :
    [DataContract]
    public class iTunesResult
    {
        [DataMember]
        public iTuneJsonResults[] results { get; set; }
    }
 
    [DataContract]
    public class iTuneJsonResults
    {
        [DataMember]
        public string collectionName { get; set; }
 
    }
 
// Lecture des données désérialisées :
iTunesResult resultat = JSONHelper.Deserialize<iTunesResult>(json);
foreach (var item in resultat.results)
{
        Console.WriteLine("collectionName: " + item.collectionName);
}
Mais si je souhaite récupérer plusieurs attribut de ma réponse JSON, la lecture des données plantes (erreur dans le foreach) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Contrat de données plus riche    
    [DataContract]
    public class iTunesResult
    {
        [DataMember]
        public int resultCount { get; set; }
        public iTuneJsonResults[] results { get; set; }
    }
 
    [DataContract]
    public class iTuneJsonResults
    {
        [DataMember]
        public string collectionName{ get; set; }
        public string trackCount{ get; set; }
 
    }
 
// Lecture des données désérialisées avec plusieurs attributs: 
 iTunesResult resultat = JSONHelper.Deserialize<iTunesResult>(json);
if (resultat.resultCount == 0)
{
       Console.WriteLine("Aucun résulat");
}
 else
{
        Console.WriteLine("Nombre de résultat : " + resultat.resultCount);
        foreach (var item in resultat.results)
        {
              Console.WriteLine("collectionName: " + item.collectionName);
              Console.WriteLine("trackCount: " + item.trackCount);
         }
}
Est-ce que mon foreach ne peux s'appliquer que dans le cas ou il n'y à qu'un attribut dans ma classe iTuneJsonResults ?
Quelqu'un voit-il ou est le problème ?

Merci !