Jak serializować pola Enum do String zamiast Int w ASP.NET MVC Core 3.0? Nie jestem w stanie zrobić tego po staremu.
services.AddMvc().AddJsonOptions(opts =>
{
opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter());
})
Pojawia się błąd:
nie można przekonwertować z „Newtonsoft.Json.Converters.StringEnumConverter” na „System.Text.Json.Serialization.JsonConverter”
Odpowiedzi:
Nowa serializacja System.Text.Json
Program ASP.NET MVC Core 3.0 korzysta z wbudowanej serializacji JSON. Użyj
System.Text.Json.Serialization.JsonStringEnumConverter
(z prefiksem „Json”):Więcej informacji tutaj . Dokumentację można znaleźć tutaj .
Jeśli wolisz Newtonsoft.Json
Możesz także użyć „tradycyjnej” serializacji Newtonsoft.Json:
źródło
.AddMvc()
, możesz zamiast tego również użyćservices.AddControllers().AddJsonOptions(...)
.