And*_*rei 0 c# asp.net-mvc asp.net-core-3.0 .net-core-3.0 system.text.json
如何在ASP.NET MVC Core 3.0中将Enum字段序列化为String而不是Int?我不能用旧的方式做。
services.AddMvc().AddJsonOptions(opts =>
{
opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter());
})
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
无法从“ Newtonsoft.Json.Converters.StringEnumConverter”转换为“ System.Text.Json.Serialization.JsonConverter”
gio*_*i02 22
如果你有一个,Minimal API这将会很有用:
using System.Text.Json.Serialization;
builder.Services.Configure<Microsoft.AspNetCore.Http.Json.JsonOptions>(opt =>
{
opt.SerializerOptions.Converters.Add(new JsonStringEnumConverter());
});
Run Code Online (Sandbox Code Playgroud)
asa*_*f92 12
.NET 7.0引入了这样的方式:
builder.Services.ConfigureHttpJsonOptions(options => options.SerializerOptions.Converters.Add(new JsonStringEnumConverter()));
Run Code Online (Sandbox Code Playgroud)
小智 11
一些补充:
如果使用Newtonsoft.Json
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
Run Code Online (Sandbox Code Playgroud)
services
.AddControllers()
.AddNewtonsoftJson(options =>
options.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter()));
Run Code Online (Sandbox Code Playgroud)
options.SerializerSettings.Converters
SerializerSettings 是必要的
ASP.NET MVC Core 3.0使用内置的JSON序列化。使用System.Text.Json.Serialization.JsonStringEnumConverter(带有“ Json”前缀):
services.AddMvc().AddJsonOptions(opts =>
{
opts.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |