相关疑难解决方法(0)

.NET - 枚举的jSON序列化为字符串

我有一个包含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)

c# asp.net enums json javascriptserializer

1088
推荐指数
22
解决办法
42万
查看次数

如何告诉全局Json.Net将StringEnumConverter应用于所有枚举

我希望使用json.net将枚举反序列化为其字符串表示形式,反之亦然.我可以想出告诉框架应用它的唯一方法StringEnumConverter是注释有问题的属性,如下所示:

[JsonConverter(typeof(StringEnumConverter))]
public virtual MyEnums MyEnum { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是,在我的用例中,全局配置json.net会更方便,所有枚举都使用它进行序列化StringEnumConverter,而不需要额外的注释.

有没有办法这样做,例如在自定义的帮助下JsonSerializerSettings

.net c# json json.net

83
推荐指数
5
解决办法
4万
查看次数

标签 统计

c# ×2

json ×2

.net ×1

asp.net ×1

enums ×1

javascriptserializer ×1

json.net ×1