wake-up-neo.com

ASP.NET MVC Core 3.0 API Serialize Enums to String

Wie serialisiere ich Enum-Felder in ASP.NET MVC Core 3.0 in String anstelle eines Int? Ich kann es nicht so machen wie früher.

services.AddMvc().AddJsonOptions(opts =>
{
    opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter());
})

Ich erhalte eine Fehlermeldung:

kann nicht von 'Newtonsoft.Json.Converters.StringEnumConverter' in 'System.Text.Json.Serialization.JsonConverter' konvertieren

11
Andrei

Neue System.Text.Json-Serialisierung

ASP.NET MVC Core 3.0 verwendet die integrierte JSON-Serialisierung. Verwenden System.Text.Json.Serialization.JsonStringEnumConverter (mit dem Präfix "Json"):

services
    .AddMvc()
    // Or .AddControllers(...)
    .AddJsonOptions(opts =>
    {
        opts.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
    })

Weitere Infos hier . Die Dokumentation finden Sie hier .

Wenn Sie Newtonsoft.Json bevorzugen

Sie können auch die "traditionelle" Newtonsoft.Json-Serialisierung verwenden:

services
    .AddControllers()
    .AddNewtonsoftJson(opts => opts.Converters.Add(new StringEnumConverter()));
20
Andrei