.NET Core 3.1中的JsonStringEnumConverter是一个用于将JSON字符串转换为枚举类型的工具。当使用JsonSerializer.Serialize()方法将对象序列化为JSON字符串时,枚举类型默认被序列化为整数值。使用JsonStringEnumConverter后,枚举类型将被序列化为字符串值。
下面是一个示例代码:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace JsonStringEnumConverterExample
class Program
static void Main(string[] args)
var options = new JsonSerializerOptions
Converters = { new JsonStringEnumConverter() }
var person = new Person { Name = "John", Gender = Gender.Male };
var json = JsonSerializer.Serialize(person, options);
Console.WriteLine(json);
var deserializedPerson = JsonSerializer.Deserialize<Person>(json, options);
Console.WriteLine($"Name: {deserializedPerson.Name}, Gender: {deserializedPerson.Gender}");
enum Gender
Male,
Female
class Person
public string Name { get; set; }
public Gender Gender { get; set; }
{"Name":"John","Gender":"Male"}
Name: John, Gender: Male
在示例代码中,我们首先创建了一个JsonSerializerOptions对象,并向其中添加了一个JsonStringEnumConverter实例。然后我们创建了一个Person对象,并将其序列化为JSON字符串。在序列化过程中,我们传递了我们创建的JsonSerializerOptions对象,这将告诉序列化器使用JsonStringEnumConverter将Gender属性序列化为字符串值。
最后,我们使用JsonSerializer.Deserialize()方法将JSON字符串反序列化为Person对象,并验证Gender属性已被正确地反序列化为枚举值Male。
希望这个例子可以帮助您了解JsonStringEnumConverter在.NET Core 3.1中的用法。