JSON mit benutzerdefiniertem Deserializer mit JSON.Net deserialisieren
Ich habe JSON, das so aussieht:
{
"MobileSiteContents": {
"au/en": [
"http://www.url1.com",
"http://www.url2.com",
],
"cn/zh": [
"http://www.url2643.com",
]
}
}
Ich versuche es zu deserialisierenIEnumerable
von Klassen, die so aussehen:
public class MobileSiteContentsContentSectionItem : ContentSectionItem
{
public string[] Urls { get; set; }
}
public abstract class ContentSectionItem
{
public string Culture { get; set; }
}
Ist das möglich?
Mir ist klar, dass ich dafür wahrscheinlich einen benutzerdefinierten JsonConverter benötigen werde, aber ich kann keine Beispiele finden.
Ich habe angefangen, eine Methode zu schreiben, mit der ich konvertieren kannJObject.Parse
aber nicht sicher, ob dies der richtige / effizienteste Weg ist:
public IEnumerable<MobileSiteContentsContentSectionItem> Parse(string json)
{
var jobject = JObject.Parse(json);
var result = new List<MobileSiteContentsContentSectionItem>();
foreach (var item in jobject.Children())
{
var culture = item.Path;
string[] urls = new[] { "" }; //= this is the part I'm having troble with here...
result.Add(new MobileSiteContentsContentSectionItem { Culture = culture, Urls = urls });
}
return result;
}