如何在 ASP.NET MVC Core 3.0 中将枚举字段序列化为字符串而不是整数?我无法按照老方法进行操作。services.AddMvc().AddJsonOptions(opts =>{ opts.JsonSerializerOptions.
如何在 ASP.NET MVC Core 3.0 中将枚举字段序列化为字符串而不是整数?我无法按照老方法做到这一点。
services.AddMvc().AddJsonOptions(opts =>
{
opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter());
})
我收到一个错误:
无法从“Newtonsoft.Json.Converters.StringEnumConverter”转换为“System.Text.Json.Serialization.JsonConverter”
ASP.NET MVC Core 3.0 使用内置 JSON 序列化。使用 System.Text.Json.Serialization.JsonStringEnumConverter
(带 \'Json\' 前缀):
services
.AddMvc()
// Or .AddControllers(...)
.AddJsonOptions(opts =>
{
var enumConverter = new JsonStringEnumConverter();
opts.JsonSerializerOptions.Converters.Add(enumConverter);
})
您还可以使用“传统”的 Newtonsoft.Json 序列化:
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
进而:
services
.AddControllers()
.AddNewtonsoftJson(opts => opts
.Converters.Add(new StringEnumConverter()));