我想使用json.net将枚举反序列化为它们的字符串表示形式,反之亦然。我可以弄清楚告诉框架应用其StringEnumConverter
的唯一方法是对有问题的属性进行如下注释:
[JsonConverter(typeof(StringEnumConverter))]
public virtual MyEnums MyEnum { get; set; }
但是,在我的用例中,全局配置json.net会更加方便,这样所有枚举都可以使用
StringEnumConverter
进行(反)序列化,而无需额外的注释。有没有办法做到这一点,例如在自定义
JsonSerializerSettings
的帮助下? 最佳答案
将StringEnumConverter
添加到JsonSerializerSettings
Converters集合。
说明文件: Serialize with JsonConverters
如果您希望序列化程序使用camelCasing,则也可以进行以下设置:
SerializerSettings.Converters.Add(
new StringEnumConverter { CamelCaseText = true });
这会将
SomeValue
序列化为someValue
。关于c# - 如何全局告诉Json.Net将StringEnumConverter应用于所有枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7427909/