title: .NET NewtonSoft JSON deserialize map to a different property name
body: <p>I have following JSON string which is received from an external party.</p>
  
  <pre><code>{
     "team":[
        {
           "v1":"",
           "attributes":{
              "eighty_min_score":"",
              "home_or_away":"home",
              "score":"22",
              "team_id":"500"
           }
        },
        {
           "v1":"",
           "attributes":{
              "eighty_min_score":"",
              "home_or_away":"away",
              "score":"30",
              "team_id":"600"
           }
        }
     ]
  }
  </code></pre>
  
  <p>My mapping classes:</p>
  
  <pre><code>public class Attributes
  {
      public string eighty_min_score { get; set; }
      public string home_or_away { get; set; }
      public string score { get; set; }
      public string team_id { get; set; }
  }
  
  public class Team
  {
      public string v1 { get; set; }
      public Attributes attributes { get; set; }
  }
  
  public class RootObject
  {
      public List&lt;Team&gt; team { get; set; }
  }
  </code></pre>
  
  <p>The question is that I don't like the <code>Attributes</code> <em>class name</em> and the <code>attributes</code> <em>field names</em> in the <code>Team</code> class. Instead, I want it to be named <code>TeamScore</code> and also to remove <code>_</code> from the field names and give proper names.</p>
  
  <pre><code>JsonConvert.DeserializeObject&lt;RootObject&gt;(jsonText);
  </code></pre>
  
  <p>I can rename <code>Attributes</code> to <code>TeamScore</code>, but if I change the field name (<code>attributes</code> in the <code>Team</code> class), it won't deserialize properly and gives me <code>null</code>. How can I overcome this?</p>