I have an enum:
public enum Animal
{
Dog,
Cat,
BlackBear
}
I need to send it to a third-party API. This API requires that
You don't need to write your own converter. Json.NET's StringEnumConverter will read the EnumMember attribute. If you change your enum
to this, it will serialize from and to the values you want.
[JsonConverter(typeof(StringEnumConverter))]
public enum Animals
{
[EnumMember(Value = "dog")]
Dog,
[EnumMember(Value = "cat")]
Cat,
[EnumMember(Value = "black_bear")]
BlackBear
}
(As a minor note, since Animals
isn't a flags enum, it should be singular: Animal
. You should consider changing it to this.)