Avatar ·

JavaScriptSerializer:如何将枚举序列化为JSON字符串而非数字?

大家好!我是一名C#初学者开发者,正在用ASP.NET Web Forms(老派技术,但项目是遗留系统)编写一个小型Web应用。我使用`JavaScriptSerializer`将对象序列化为JSON,以便发送到客户端。 有一个这样的类: ```csharp public class User { public string Name { get; set; } public UserRole Role { get; set; } } public enum UserRole { Admin, Moderator, User } ``` 我创建对象并序列化它: ```csharp var user = new User { Name = "伊万", Role = UserRole.Admin }; var serializer = new JavaScriptSerializer(); string json = serializer.Serialize(user); Console.WriteLine(json); ``` 输出结果是:`{"Name":"伊万","Role":0}`。 问题在于`Role`被序列化为数字(0, 1, 2),而我需要的是字符串值,例如`"Admin"`。在客户端需要这个来保证可读性和比较。 我知道在现代的`System.Text.Json`或`Newtonsoft.Json`中有像`[JsonConverter(type`这样的属性。