ASP.NET MVC Core 3.0でEnumフィールドをIntではなくStringにシリアル化する方法は?古い方法ではできません。
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 =>
{
opts.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
})
「従来の」Newtonsoft.Jsonシリアル化を使用することもできます。
services
.AddControllers()
.AddNewtonsoftJson(opts => opts.Converters.Add(new StringEnumConverter()));