using Newtonsoft.Json.Converters;
public static void Main()
"x": "SourceSystem_Datatrans"
JsonConvert.DeserializeObject<A>(a, new JsonSerializerSettings { Converters = [new CustomConverter { }] }).Dump();
public class CustomConverter : JsonConverter
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
writer.WriteValue(value?.ToString());
public override object ReadJson(JsonReader reader, Type objectType, object? existingValue,
JsonSerializer serializer)
if ( reader.TokenType == JsonToken.String )
var stringValue = reader.Value?.ToString();
var cleanedValue = stringValue?.Replace("_", "");
if ( Enum.IsDefined(objectType, cleanedValue!) )
return Enum.Parse(objectType, cleanedValue!, true);
throw new JsonSerializationException($"Unable to convert {reader.Value} to {objectType}");
public override bool CanConvert(Type objectType)
return objectType.IsEnum;