Я пытаюсь преобразовать некоторые старые работы для использования Newtonsoft JSON.NET. Обработка по умолчанию с использованием метода System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (например, если тип цели не указан) заключается в возврате Dictionary<string,object> для внутренних объектов.
Это действительно полезный базовый тип для JSON, поскольку он также является базовым типом, используемым ExpandoObjects, и является наиболее разумной внутренней реализацией для динамических типов.
Если я укажу этот тип, например:
var dict = JsonConvert.DeserializeObject<Dictionary<string,object>>(json);
JSON.NET будет десериализовать структуру самого внешнего объекта правильно, но возвращает любые типы JObject для любых внутренних структур. Мне действительно нужно, чтобы одна и та же внешняя структура использовалась для любых структур внутреннего объекта.
Есть ли способ указать тип, который будет использоваться для внутренних объектов, а не только внешний вид?