Como serializar campos Enum para String em vez de um Int no ASP.NET MVC Core 3.0? Eu não sou capaz de fazer isso da maneira antiga.
services.AddMvc().AddJsonOptions(opts =>
{
opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter());
})
Estou recebendo um erro:
não pode converter de 'Newtonsoft.Json.Converters.StringEnumConverter' para 'System.Text.Json.Serialization.JsonConverter'
Respostas:
Nova serialização System.Text.Json
O ASP.NET MVC Core 3.0 usa serialização JSON interna. Use
System.Text.Json.Serialization.JsonStringEnumConverter
(com o prefixo "Json"):Mais informações aqui . A documentação pode ser encontrada aqui .
Se você preferir Newtonsoft.Json
Você também pode usar a serialização "tradicional" de Newtonsoft.Json:
fonte
.AddMvc()
também pode usá-loservices.AddControllers().AddJsonOptions(...)
.