Я пытаюсь преобразовать некоторые старые работы для использования 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
для любых внутренних структур. Мне действительно нужно, чтобы одна и та же внешняя структура использовалась для любых структур внутреннего объекта.
Есть ли способ указать тип, который будет использоваться для внутренних объектов, а не только внешний вид?