我正在使用ASP.NET Core 3.0 Web API。许多端点返回带有枚举的json
。枚举不是序列化为字符串,而是默认的整数。
我知道[JsonConverter(typeof(StringEnumConverter))]
属性。但是我正在寻找一种解决方案,在这里我会全局地说“此API返回的每个枚举都应序列化为string
,而无需在每个枚举中手动在模型中声明属性”。>
直到今天,我一直使用.NETCore2.1。我能够使用Newtonsoft.Json.Converters
和以下中间件来实现这一点:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddJsonOptions(op => { op.SerializerSettings.Converters.Add(new StringEnumConverter());});
此代码在.NETCore3.0
中不起作用,因此我正在寻找一种解决方案,始终将全局枚举转换为字符串,而无需更改或修饰NETCore3.0
中的模型类。
感谢帮助
答案 0 :(得分:1)
在.NET Core 3.0中,默认情况下不再包括Newtonsoft.JSON包。
安装following package,然后尝试添加转换器,如下所示:
services.AddMvc(...).AddNewtonsoftJson(opt => SerializerSettings.Converters.Add(new StringEnumConverter()));