首页 > 解决方案 > 无法将枚举序列化为字符串 .net core 3.1

问题描述

在 startup.cs 中使用以下配置 services.AddControllers() .AddNewtonsoftJson(opt => opt.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter()))

但无法将枚举序列化为字符串值。swagger 页面中仅显示整数值。有人可以帮我解决这个问题吗?

标签: asp.net-web-apiasp.net-core-mvcasp.net-core-3.1

解决方案


您有几种方法可以实现这一目标。

  • [JsonConverter(typeof(StringEnumConverter))]在 Enum 字段上添加属性。

    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
    
    [JsonConverter(typeof(StringEnumConverter))]
    public Gender Gender { get; set; }
    
  • 在序列化过程中添加formatting参数。

    string value = JsonConvert.SerializeObject(objectlist,new Newtonsoft.Json.Converters.StringEnumConverter());

你也可以参考这个


推荐阅读