title: Deserialize JSON recursively to IDictionary<string,object>
body: <p>I'm trying to convert some older work to use Newtonsoft JSON.NET. The default handling using the <code>System.Web.Script.Serialization.JavaScriptSerializer.Deserialize</code> method (e.g. if no target type is specified) is to return a <code>Dictionary&lt;string,object&gt;</code> for inner objects.</p>
  
  <p>This is actually a really useful basic type for JSON since it also happens to be the underlying type used by <code>ExpandoObjects</code> and is the most sensible internal implementation for dynamic types. </p>
  
  <p>If I specify this type, e.g.:</p>
  
  <pre><code> var dict = JsonConvert.DeserializeObject&lt;Dictionary&lt;string,object&gt;&gt;(json);
  </code></pre>
  
  <p>JSON.NET will deserialize the outermost object structure correctly, but it returns a <code>JObject</code> type for any inner structures. What I really need is for the same outer structure to be used for any inner object-type structures.</p>
  
  <p>Is there a way to specify a type to be used for inner objects, and not just the outermost type returned?</p>