using System.Collections.Generic;
var stringJson = "{ \"Key\": \"TextA\" }";
var outcome = SerializeWithCamelCase(stringJson);
Console.WriteLine(outcome);
private static string SerializeWithCamelCase(string jsonContent)
using var document = JsonDocument.Parse(jsonContent);
var root = document.RootElement;
var modifiedObject = ConvertPropertyNamesToCamelCase(root);
var options = new JsonSerializerOptions
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
return JsonSerializer.Serialize(modifiedObject, options);
private static JsonElement ConvertPropertyNamesToCamelCase(JsonElement element)
switch (element.ValueKind)
case JsonValueKind.Object:
var objBuilder = new Dictionary<string, JsonElement>();
foreach (var property in element.EnumerateObject())
var camelCaseName = ToCamelCase(property.Name);
var camelCaseValue = ConvertPropertyNamesToCamelCase(property.Value);
objBuilder[camelCaseName] = camelCaseValue;
return JsonDocument.Parse(JsonSerializer.Serialize(objBuilder)).RootElement;
case JsonValueKind.Array:
var arrayBuilder = new List<JsonElement>();
foreach (var item in element.EnumerateArray())
var camelCaseItem = ConvertPropertyNamesToCamelCase(item);
arrayBuilder.Add(camelCaseItem);
return JsonDocument.Parse(JsonSerializer.Serialize(arrayBuilder)).RootElement;
private static string ToCamelCase(string name)
if (string.IsNullOrEmpty(name))
return name.ToLowerInvariant();
return char.ToLowerInvariant(name[0]) + name.Substring(1);