JavaScriptSerializer: 如何将枚举序列化为JSON字符串而非数字
大家好!我刚开始学习C#和ASP.NET,在使用JavaScriptSerializer将对象序列化为JSON时遇到了一个问题。
我有一个这样的枚举:
```csharp
public enum Status
{
Active = 1,
Inactive = 2,
Pending = 3
}
```
以及使用它的类:
```csharp
public class User
{
public string Name { get; set; }
public Status UserStatus { get; set; }
}
```
当我序列化User对象时:
```csharp
var user = new User { Name = "John", UserStatus = Status.Active };
var json = new JavaScriptSerializer().Serialize(user);
```
得到的JSON是这样的:`{"Name":"John","UserStatus":1}`。而我需要状态是字符串,例如:`{"Name":"John","UserStatus":"Active"}`。
问题在于JavaScriptSerializer默认将枚举转换为其数值。项目中枚举很多,手动修改所有枚举很麻烦。我听说在Newtonsoft.Json中有`[JsonConverter(typeof(StringEnumConverte`