title: JSON.Net - cannot deserialize the current json object (e.g. {"name":"value"}) into type 'system.collections.generic.list`1
body: <p>I have a JSON like</p>
  
  <pre><code>{
    "40": {
      "name": "Team A vs Team B",
      "value": {
        "home": 1,
        "away": 0
      }
    },
    "45": {
      "name": "Team A vs Team C",
      "value": {
        "home": 2,
        "away": 0
      }
    },
    "50": {
      "name": "Team A vs Team D",
      "value": {
        "home": 0,
        "away": 2
      }
    }
  }
  </code></pre>
  
  <p>So it's kind of list of matches. And I have the class to deserialize it into:</p>
  
  <pre><code>public class Match
  {
      [JsonProperty(PropertyName = "name")]
      public string Name { get; set; }
      [JsonProperty(PropertyName = "value")]
      public Value Values { get; set; }
  }
  
  public class Value
  {
      [JsonProperty(PropertyName = "home")]
      public int Home { get; set; }
      [JsonProperty(PropertyName = "away")]
      public int Away { get; set; }
  }
  </code></pre>
  
  <p>I am trying to deserialize json like this:</p>
  
  <pre><code>var mList= JsonConvert.DeserializeObject&lt;List&lt;Match&gt;&gt;(jsonstr);
  </code></pre>
  
  <p>But i am getting exception:</p>
  
  <blockquote>
    <p>Cannot deserialize the current JSON object (e.g. {"name":"value"})
    into type 'System.Collections.Generic.List`1[ClassNameHere]' because
    the type requires a JSON array (e.g. [1,2,3]) to deserialize
    correctly.</p>
  </blockquote>
  
  <p>If i change the code like:</p>
  
  <pre><code>var mList= JsonConvert.DeserializeObject(jsonstr);
  </code></pre>
  
  <p>Then it serializes but not as a list, as a object. How can I fix this? </p>