title: How to deserialize root object with meaningless dynamic key names? Json.NET
body: <p>I am getting the following from json payload from a REST request.</p>
  
  <pre><code>{
      "version": "1.1", 
      "date": "2017-01-06",
      "count": "130",
      "0": {
            "artist": "Artist 1",
            "title": "Title 1"
       },
      "1": {
            "artist": "Artist 2",
            "title": "Title 2"
       },
      ...
      "49": {
            "artist": "Artist 50",
            "title": "Title 50"
       }
  }
  </code></pre>
  
  <p>As you can see, there are several numeric root elements.  These elements index the object in the response, so I don't need the numbers themselves, I just need the <code>Song</code> object they represent.  I also need <code>count</code> to know if I need to make a call to the server to get the next page of songs (the server returns 50 <code>Song</code> objects max per call).</p>
  
  <p>Here is what I have for <code>Song</code> class:</p>
  
  <pre><code>public class Song
  {
      public string artist {get; set;}
      public string title {get; set;}
  }
  </code></pre>
  
  <p>But I am having issues getting the root element.  I tried to mimic the process used when there is a dynamic child element, but this does not work.</p>
  
  <pre><code>public class SongsResponse
  {
      public string version { get; set; }
      public string date { get; set; }
      public string count {get; set; }
      public Dictionary&lt;string, Song&gt; songs { get; set; }
  }
  </code></pre>
  
  <p>I've seen solutions that "throw away" <code>version</code>, <code>date</code> and <code>count</code> and others that do it without pre-defined classes.</p>
  
  <p>But I need <code>count</code> and ideally would want to work from predefined classes.</p>