Json.Net deserialize and serialize properties with names that change
<p>I am integrating with a third party and the JSON they are returning is throwing me for a loop. I want to deserialize it into a class. but most of the property names can change.</p>

<pre><code>{
  "transaction_id":1,
  "status":"Reviewing",
  "changelog":{
    "2016-Mar-15 10:28 AM":{
      "status":{
        "from":"Approved",
        "to":"Reviewing"
      },
      "total":{
        "from":123.45,
        "to":246.90
      },
      "shipping_address_1":{
        "from":"321 S Main St.",
        "to":"8355 NW 74th St"
      },
      "shipping_city":{
        "from":"New York",
        "to":"Medley"
      },
      "shipping_state":{
        "from":"NY",
        "to":"FL"
      },
      "shipping_postal":{
        "from":"10002",
        "to":"33166"
      }
    }
  }
}
</code></pre>

<p>I would like to have a class that is similar to this.</p>

<pre><code>public class TransactionChangeLog
{
    [JsonProperty(PropertyName = "transaction_id")]
    public int TransactionId { get; set; }

    [JsonProperty(PropertyName = "status")]
    public TransactionStatus Status { get; set; }

    [JsonProperty(PropertyName = "changelog")]
    public ICollection&lt;TransactionChange&gt; Changelog { get; set; }
}

public class TransactionChange
{
    // ?? What to do with this.
    public DateTime ChangeDate { get; set; }

    // ?? What to do with this.
    public string Field { get; set; }

    public string From { get; set; }

    public string To { get; set; }
}
</code></pre>