using Newtonsoft.Json.Converters;
public static void Main()
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.Converters.Add(new StringEnumExceptFooConverter());
settings.Formatting = Formatting.Indented;
string json = JsonConvert.SerializeObject(bar, settings);
enum Foo { One = 1, Two = 2, Three = 3 }
enum Fah { Alpha = 1, Beta = 2, Gamma = 3, Delta = 4 }
enum Fizz { Bang = 1, Pop = 2, Pow = 3 }
public Foo Foo { get; set; }
public Fah Fah { get; set; }
public Fizz Fizz { get; set; }
class StringEnumExceptFooConverter : StringEnumConverter
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
if (value is Foo || value is Foo?)
writer.WriteValue(value);
base.WriteJson(writer, value, serializer);