Десериализация JSON с использованием собственного десериализатора с JSON.Net
У меня есть JSON, который выглядит так:
{
"MobileSiteContents": {
"au/en": [
"http://www.url1.com",
"http://www.url2.com",
],
"cn/zh": [
"http://www.url2643.com",
]
}
}
Я пытаюсь десериализовать это вIEnumerable
классов, которые выглядят так:
public class MobileSiteContentsContentSectionItem : ContentSectionItem
{
public string[] Urls { get; set; }
}
public abstract class ContentSectionItem
{
public string Culture { get; set; }
}
Это возможно?
Я понимаю, что мне, вероятно, потребуется использовать Custom JsonConverter для этого, но не могу найти никаких примеров.
Я начал писать метод для преобразования с помощьюJObject.Parse
но не уверен, что это правильный / наиболее эффективный маршрут для спуска:
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;
}