2011-07-27 4 views
1

J'essaye de désérialiser certains JSON que je reçois d'une source externe (pas moyen de le changer) et j'ai quelques problèmes avec ça. J'utilise JSON.net désérialiser, ce qui est un exemple de ce que je reçois:Deserializing JSON avec des champs inconnus

{ 
    "uploaded": 
    { 
     "name":"Uploaded by me", 
     "size":3768, 
     "last_change_time":1310470698 
    }, 
    "tagged": 
    { 
     "name":"Photos I'm tagged in", 
     "size":6937, 
     "last_change_time":1311730303 
    }, 
    "4019677_60607060": 
    { 
     "name":"Asad", 
     "size":63, 
     "last_change_time":1271315304 
    }, 
    "4611824_60607060": 
    { 
     "name":"ASDF", 
     "size":64, 
     "last_change_time":1262645480 
    } 
} 

De cette façon, je crée un objet Albums et un objet Album

[DataContract] 
public class Albums 
{ 
    [DataMember] 
    public Album uploaded { get; set; } 
    [DataMember] 
    public Album tagged { get; set; } 
} 

[DataContract] 
public class Album 
{ 
    [DataMember] 
    public string name { get; set; } 
    [DataMember] 
    public int size { get; set; } 
    [DataMember] 
    public int last_change_time { get; set; } 
} 

Et comme vous pouvez voyez, avec l'objet Albums, j'ai un problème, parce que je ne sais pas quel serait l'identifiant de l'album, et donc, je ne peux pas créer un champ dans les albums avec cet identifiant. Transféré et champs marqués Atre Je pense qu'il devrait y avoir une option dans JSON.net pour y parvenir, mais je ne peux pas le trouver ...

Merci à tous

Répondre

1

le Recieved JSON semble être un .. Dictionnary

avez-vous essayé de désesérialiser comme Dictionnary<string,Album>?

+0

yay! Je ne peux pas imaginer comment je ne l'ai pas vu avant ... Merci! –

Questions connexes