我有一个包含enum属性的类,并使用序列化对象后JavaScriptSerializer,我的json结果包含枚举的整数值而不是其string“名称”。有没有一种方法可以string在我的json中获取枚举而无需创建自定义JavaScriptConverter?也许有一个属性可以用来装饰enum定义或对象属性?
enum
JavaScriptSerializer
string
JavaScriptConverter
举个例子:
enum Gender { Male, Female } class Person { int Age { get; set; } Gender Gender { get; set; } }
所需的json结果:
{ "Age": 35, "Gender": "Male" }
理想情况下,使用内置的.NET框架类寻找答案,如果可能的话,欢迎使用替代方法(如Json.net)。
不,没有可以使用的特殊属性。JavaScriptSerializer序列化enums为其数值而不是其字符串表示形式。您将需要使用自定义序列化来序列化enum其名称(而不是数字值)。
enums
如果您可以使用JSON.Net而不是JavaScriptSerializer不愿看到 关于这个问题的答案提供OmerBakhari:JSON.net涵盖这种使用情况下(通过属性[JsonConverter(typeof(StringEnumConverter))])和许多其他.NET序列化没有内置处理。这是一个比较串行器特性和功能的链接。
[JsonConverter(typeof(StringEnumConverter))]