gpt4 book ai didi

c# - ASP.NET MVC Core API 将枚举序列化为字符串

转载 作者:行者123 更新时间:2023-12-02 02:47:50 24 4
gpt4 key购买 nike

如何在 ASP.NET MVC Core 3.0 中将 Enum 字段序列化为 String 而不是 Int?我无法用旧的方式做到这一点。

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

我收到错误:

cannot convert from 'Newtonsoft.Json.Converters.StringEnumConverter' to 'System.Text.Json.Serialization.JsonConverter'

最佳答案

新的 System.Text.Json 序列化

ASP.NET MVC Core 3.0 使用内置的 JSON 序列化。使用 System.Text.Json.Serialization.JsonStringEnumConverter(带有“Json”前缀):

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

更多信息here 。该文档可以找到 here .

如果您更喜欢 Newtonsoft.Json

您还可以使用“传统”Newtonsoft.Json 序列化:

Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson

然后:

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

关于c# - ASP.NET MVC Core API 将枚举序列化为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59096102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com