using Newtonsoft.Json.Serialization;
public static void Main()
""AttributeString"": ""ok"",
""AttributeNumeric"": 123.45
Console.WriteLine("----- Original JSON ---");
var obj = JsonConvert.DeserializeObject<RootObject>(json);
var settings = new JsonSerializerSettings
ContractResolver = new DefaultContractResolver
NamingStrategy = new SnakeCaseNamingStrategy
ProcessDictionaryKeys = true
Formatting = Formatting.Indented
json = JsonConvert.SerializeObject(obj, settings);
Console.WriteLine("----- Converted to snake_case ---");
obj = JsonConvert.DeserializeObject<RootObject>(json, settings);
json = JsonConvert.SerializeObject(obj, Formatting.Indented);
Console.WriteLine("----- Converted back to UpperCamelCase ---");
public FirstObject FirstObject { get; set; }
public NestedObject NestedObject { get; set; }
public OtherObject[] OtherObject { get; set; }
public class NestedObject
public string AttributeString { get; set; }
public string AttributeNumeric { get; set; }
public string ArrayVal { get; set; }