c# - 如何全局告诉 Json.Net 将 StringEnumConverter 应用于所有枚举

标签 c# .net json json.net

我想用 json.net 将枚举反序列化为它们的字符串表示形式,反之亦然。我能想出告诉框架应用其 StringEnumConverter 的唯一方法是像这样注释有问题的属性:

[JsonConverter(typeof(StringEnumConverter))]
public virtual MyEnums MyEnum { get; set; }

但是,在我的用例中,全局配置 json.net 会方便得多,这样所有枚举都可以使用 StringEnumConverter 进行(反)序列化,而无需额外的注释。

有没有办法做到这一点,例如在自定义 JsonSerializerSettings 的帮助下?

最佳答案

StringEnumConverter 添加到 JsonSerializerSettings 转换器集合。

文档: Serialize with JsonConverters


如果你想让序列化器使用camelCasing,你也可以设置这个:

SerializerSettings.Converters.Add(
    new StringEnumConverter { CamelCaseText = true });

这会将 SomeValue 序列化为 someValue

关于c# - 如何全局告诉 Json.Net 将 StringEnumConverter 应用于所有枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427909/

相关文章:

c# - .NET 的并发收集超时?

c# - 使用 asp.net core 2.1 执行获取操作

java - 将 JSON 数据映射到 Java 对象时遇到问题

javascript - XML XPath 和 XSLT 的 JSON 等价物是什么?

c#异常进程无法访问文件

ios - 使用Grand Central Dispatch将URL字符串从JSON转换为ImageView的图像

c# - 更新用户的成员角色

c# - 用逗号和句点验证正数

.net - 在 UserControl 中捕获 KeyDown 事件

c# - 在 C# 中将 int 转换为 4 字节的最快方法