You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6中Enum字符串序列化不符合预期问题排查

枚举序列化首字母小写异常的原因分析
  • 全局命名策略覆盖局部转换器设置
    若项目中全局配置了CamelCaseNamingStrategy(比如Json.NET的全局配置),该全局策略优先级高于单个字段或枚举类型上的StringEnumConverter特性。全局驼峰命名策略会自动将枚举值转为首字母小写格式,即便指定了字符串枚举转换器也会被覆盖。

  • 特性使用方式错误
    你在字段上标注的[JsonProperty(ItemConverterType = typeof(StringEnumConverter))]属于误用:ItemConverterType是用来指定集合类型中元素的转换器(例如List<LeadType>这类字段),单个枚举字段应直接用[JsonConverter(typeof(StringEnumConverter))]标注,原配置等于未给单个枚举字段正确指定转换器,导致序列化时采用默认命名规则。

  • Json序列化库混用导致特性失效
    注意StringEnumConverter属于Newtonsoft.Json(Json.NET),而JsonStringEnumConverter属于System.Text.Json。若项目同时引入两个库,或实际使用的序列化库与标注特性所属库不匹配,会导致特性失效。比如枚举上标注了System.Text.Json的JsonStringEnumConverter,但实际用Newtonsoft.Json序列化,该特性就不会生效,序列化会遵循默认规则。

内容的提问来源于stack exchange,提问作者user007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:04:55