I want to deserialize enumerations to their string representation and vice versa with json.net. The only way I could figure out to tell the framework to apply its StringEnumConverter
is to annotate the properties in question like this:
[JsonConverter(typeof(StringEnumConverter))]
public virtual MyEnums MyEnum { get; set; }
However, in my use case, it would be much more convenient to configure json.net globally such that all enumerations get (de)serialized using the StringEnumConverter
, without the need of extra annotations.
Is there any way to do so, e.g. with the help of custom JsonSerializerSettings
?
Add a StringEnumConverter
to the JsonSerializerSettings
Converters collection.
Documentation: Serialize with JsonConverters
If you want the serializer to use camelCasing, you can set this as well:
SerializerSettings.Converters.Add(
new StringEnumConverter { CamelCaseText = true });
This will serialize SomeValue
to someValue
.