Json.NET: десериализация вложенных словарей

При десериализации объекта в Dictionary ( JsonConvert.DeserializeObject<IDictionary>(json) ) вложенные объекты десериализуются в JObject s. Можно ли принудительно десериализовать вложенные объекты в словарях s?

Я нашел способ конвертировать все вложенные объекты в Dictionary , предоставив реализацию CustomCreationConverter :

 class MyConverter : CustomCreationConverter> { public override IDictionary Create(Type objectType) { return new Dictionary(); } public override bool CanConvert(Type objectType) { // in addition to handling IDictionary // we want to handle the deserialization of dict value // which is of type object return objectType == typeof(object) || base.CanConvert(objectType); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.StartObject || reader.TokenType == JsonToken.Null) return base.ReadJson(reader, objectType, existingValue, serializer); // if the next token is not an object // then fall back on standard deserializer (strings, numbers etc.) return serializer.Deserialize(reader); } } class Program { static void Main(string[] args) { var json = File.ReadAllText(@"c:\test.json"); var obj = JsonConvert.DeserializeObject>( json, new JsonConverter[] {new MyConverter()}); } } 

Документация: CustomCreationConverter с Json.NET

Альтернатива / Update:

Мне нужно было десериализовать словарь словарей String s и с текущим Json.NET (5.0) мне не пришлось создавать CustomConverter, я просто использовал (в VB.Net):

 JsonConvert.DeserializeObject(Of IDictionary(Of String, IDictionary(Of String, String)))(jsonString) 

Или, в C #:

 JsonConvert.DeserializeObject>(jsonString); 
  • Удаление десериализации JSON в .NET-объект с использованием Newtonsoft (или LINQ to JSON, возможно?)
  • Полиморфизм в аннотациях jacksonа: использование @JsonTypeInfo
  • Newtonsoft JSON Deserialize
  • Как я могу разбирать JSON с C #?
  • Как сериализовать объект, который включает BufferedImages
  • Десериализация JSON с использованием JSon.NET с динамическими данными
  • Как реализовать пользовательский JsonConverter в JSON.NET для десериализации списка объектов базового classа?
  • Json.NET Отключить десериализацию в DateTime
  • Сериализация - readObject writeObject переопределяет
  • VB.net JSON Deserialize
  • Давайте будем гением компьютера.