using System; using System.Text.Json; public class SnakeCaseNamingPolicy : JsonNamingPolicy { public override string ConvertName(string name) { return string.IsNullOrEmpty(name) ? name : ToSnakeCase(name); } private string ToSnakeCase(string name) { var stringBuilder = new System.Text.StringBuilder(); for (var i = 0; i < name.Length; i++) { if (char.IsUpper(name[i])) { if (i > 0) { stringBuilder.Append('_'); } stringBuilder.Append(char.ToLowerInvariant(name[i])); } else { stringBuilder.Append(name[i]); } } return stringBuilder.ToString(); } }