using System.Collections.Generic;
using System.Runtime.Serialization;
using Newtonsoft.Json.Linq;
public static void Main()
var deserialized = JsonConvert.DeserializeObject<Root>(json);
foreach (var record in deserialized.Records)
Console.WriteLine($"{record.Key} = {record.Color}");
private Dictionary<string, JToken> _data { get; set; }
public List<Preference> Records { get; set; } = new List<Preference>();
private void OnDeserialized(StreamingContext context)
foreach (var key in _data.Keys)
var data = _data[key].ToObject<Preference>();
data.Key = DateTime.Parse(key);
public DateTime Key { get; set; }
public string Color { get; set; }