Я знаю, что уже были подняты некоторые вопросы по этой теме, но я все еще пытаюсь понять это.У меня довольно сложный объект JSON, который имеет динамический ключ в начале.Я пытаюсь десериализовать его в объектную модель C #, но моя проблема заключается в динамическом ключе:
{
"ISBN:0903393972": {
"bib_key": "ISBN:0903393972",
"details": {
"publishers": ["Sweet & Maxwell"],
"physical_format": "Hardcover",
"title": "Tanker Voyage Charter Parties",
"created": {
"type": "/type/datetime",
"value": "2008-04-30T09:38:13.731961"
},
"authors": [{
"name": "F.M. Ventris",
"key": "/authors/OL3610236A"
}],
}}}
Моя головная боль возникает из-за динамической части "ISBN: 0903393972".Ниже также приведена часть модели:
[DataContract]
public class Created
{
[DataMember]
public string type { get; set; }
[DataMember]
public DateTime value { get; set; }
}
[DataContract]
public class Author
{
[DataMember]
public string name { get; set; }
[DataMember]
public string key { get; set; }
}
[DataContract]
public class Details
{
[DataMember]
public List<string> publishers { get; set; }
[DataMember]
public string physical_format { get; set; }
[DataMember]
public string title { get; set; }
[DataMember]
public Created created { get; set; }
[DataMember]
public List<Author> authors { get; set; }
}
[DataContract]
public class ISBN
{
[DataMember]
public string bib_key { get; set; }
[DataMember]
public Details details { get; set; }
}
[DataContract]
public class RootObject
{
public Dictionary<string, ISBN> bookRoot { get; set; }
}
Я десериализирую формат JSON с помощью приведенного ниже кода (который работает, если я жестко кодирую «ISBN: 0903393972» в качестве ключа объекта):
string json = new WebClient().DownloadString(URLAddress);
JObject book = JObject.Parse(json) as JObject;
// Copy to a static Album instance
RootObject deserializedBook = book.ToObject<RootObject>();
return deserializedBook;
Я уверен, что что-то здесь упускаю, но целый день боролся за то, чтобы найти решение.Любая помощь будет принята с благодарностью!