我有一个包含enum属性的类,在使用时序列化对象时JavaScriptSerializer,我的json结果包含枚举的整数值而不是它的string"name".有没有办法让枚举作为string我的json而不必创建自定义JavaScriptConverter?也许有一个属性,我可以装饰enum定义,或对象属性,?
举个例子:
enum Gender { Male, Female }
class Person
{
int Age { get; set; }
Gender Gender { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
期望的json结果:
{ "Age": 35, "Gender": "Male" }
Run Code Online (Sandbox Code Playgroud) 我希望使用json.net将枚举反序列化为其字符串表示形式,反之亦然.我可以想出告诉框架应用它的唯一方法StringEnumConverter是注释有问题的属性,如下所示:
[JsonConverter(typeof(StringEnumConverter))]
public virtual MyEnums MyEnum { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是,在我的用例中,全局配置json.net会更方便,所有枚举都使用它进行序列化StringEnumConverter,而不需要额外的注释.
有没有办法这样做,例如在自定义的帮助下JsonSerializerSettings?