Десериализация JSON с неизвестными полями
Я пытаюсь десериализовать некоторый JSON, который я получаю из внешнего источника (нет способа его изменить), и у меня возникают некоторые проблемы с ним. Я использую JSON.net для десериализации, и это пример того, что я получаю:
{
"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
}
}
Таким образом, я создаю объект Albums и объект 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; }
}
И, как вы можете видеть, с объектом Albums у меня возникла проблема, потому что я не знаю, каким будет идентификатор альбома, и, следовательно, я не могу создать поле в альбомах с этим идентификатором. Загруженные и помеченные поля atre Я думаю, что в JSON.net должна быть опция для достижения этой цели, но я не могу ее найти...
Спасибо вам всем
1 ответ
Решение
Полученный JSON, похоже, словарь.
Вы пытались десериализовать как Dictionnary<string,Album>
?