using System.Collections.Generic;
using Newtonsoft.Json.Serialization;
public static void Main()
var myClass = new MyClass
CamelCaseThis = new Dictionary<string, ICollection<string>>
{ "ABC1", new List<string> { "FOO", "Bar" } },
{ "DEF2", new List<string> { "Baz", "QuuX" } },
{ "ShouldBeAllLower3", new List<string> { "Blah" } },
string json = JsonConvert.SerializeObject(myClass, Formatting.Indented);
[JsonObject(NamingStrategyType = typeof(CustomNamingStrategy))]
public Dictionary<string, ICollection<string>> CamelCaseThis { get; set; }
public class CustomNamingStrategy : CamelCaseNamingStrategy
public CustomNamingStrategy()
ProcessDictionaryKeys = true;
ProcessExtensionDataNames = true;
OverrideSpecifiedNames = true;
public override string GetDictionaryKey(string key)