JsonCamelCaseNamingPolicy
namespace System.Text.Json
{
internal sealed class JsonCamelCaseNamingPolicy : JsonNamingPolicy
{
public override string ConvertName(string name)
{
if (string.IsNullOrEmpty(name) || !char.IsUpper(name[0]))
return name;
char[] array = name.ToCharArray();
FixCasing(array);
return new string(array);
}
private static void FixCasing(Span<char> chars)
{
int num = 0;
while (true) {
if (num >= chars.Length || (num == 1 && !char.IsUpper(chars[num])))
return;
bool flag = num + 1 < chars.Length;
if (((num > 0) & flag) && !char.IsUpper(chars[num + 1]))
break;
chars[num] = char.ToLowerInvariant(chars[num]);
num++;
}
if (chars[num + 1] == ' ')
chars[num] = char.ToLowerInvariant(chars[num]);
}
}
}