using System.Collections.Generic;
public static void Main()
""status"": ""Reviewing"",
""2016-Mar-15 10:28 AM"": {
""shipping_address_1"": {
""from"": ""321 S Main St."",
""to"": ""8355 NW 74th St""
TransactionChangeLog changeLog = JsonConvert.DeserializeObject<TransactionChangeLog>(json);
Console.WriteLine("TransactionId: " + changeLog.TransactionId);
Console.WriteLine("TransactionStatus: " + changeLog.Status);
foreach (var dateKvp in changeLog.Changelog)
Console.WriteLine(dateKvp.Key);
foreach (var fieldKvp in dateKvp.Value)
Console.WriteLine(" changed " + fieldKvp.Key + " from '" + fieldKvp.Value.From + "' to '" + fieldKvp.Value.To + "'");
public enum TransactionStatus { Reviewing, Approved }
public class TransactionChangeLog
[JsonProperty(PropertyName = "transaction_id")]
public int TransactionId { get; set; }
[JsonProperty(PropertyName = "status")]
public TransactionStatus Status { get; set; }
[JsonProperty(PropertyName = "changelog")]
public Dictionary<DateTime, Dictionary<string, TransactionChange>> Changelog { get; set; }
public class TransactionChange
public string From { get; set; }
public string To { get; set; }