using System.Runtime.Intrinsics.X86; using System.Text; using System.Text.Json; using System.Text.RegularExpressions; namespace LearningOfficer.OA.Mobile.Api.Filters { public class CustomJsonNamingPolicy : JsonNamingPolicy { public override string ConvertName(string name) { //第一个字母小写 if (string.IsNullOrEmpty(name)) { return name; } if (name.Length > 1 && char.IsUpper(name[0])) { name = char.ToLower(name[0]) + name.Substring(1); } return ChangeName(name); } private string ChangeName(string name) { Match mt = Regex.Match(name, @"_(\w*)*"); if (mt.Success) { var sb = new StringBuilder(); bool toUpper = false; for (int i = 0; i < name.Length; i++) { char c = name[i]; if (c == '_') { toUpper = true; } else { sb.Append(toUpper ? char.ToUpperInvariant(c) : c); toUpper = false; } } if (sb.Length > 0) { sb[0] = char.ToLowerInvariant(sb[0]); } return sb.ToString(); } return name; } } }