Enum Serialization Json vs XML
我的项目中有以下枚举
1 2 3 4 5 6 7 | public enum CameraAccessMethod { Manual = 0, Panasonic = 1, Axis = 2, AirCam = 3 } |
我有一个对象,它根据不同的场景被序列化为JSON或XML,对象的一个属性是
由于web api rc,您可以通过在
1 2 3 | var jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter; var enumConverter = new Newtonsoft.Json.Converters.StringEnumConverter(); jsonFormatter.SerializerSettings.Converters.Add(enumConverter); |
如果您切换到使用基于json.net的格式化程序(它将随下一个ASP.NET Web API一起发布),您可以很容易地实现这一点。有关详细信息,请参阅此SO文章:
如何全局告诉json.net将StringEnumConverter应用于所有枚举
要使用
1 2 3 4 5 6 7 8 9 | var serializerSettings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings; var enumConverter = new Newtonsoft.Json.Converters.StringEnumConverter(); serializerSettings.Converters.Add(enumConverter); GlobalConfiguration.Configuration.Formatters.Clear(); GlobalConfiguration.Configuration.Formatters.Add(new PartialJsonMediaTypeFormatter() { IgnoreCase = true, SerializerSettings = serializerSettings }); |