枚举序列化Json vs XML

Muh*_*hid 19 .net xml serialization json asp.net-web-api

我在项目中关注了Enum

public enum CameraAccessMethod
{
    Manual = 0,
    Panasonic = 1,
    Axis = 2,
    AirCam = 3
}
Run Code Online (Sandbox Code Playgroud)

我有一个对象,可以根据不同的场景序列化为json或XML,对象的属性之一是类型CameraAccessMethod.我遇到的问题是,当这个属性被序列化为XML时,它将给出枚举值的字符串表示(Manual,Panasonic,Axis,Aircam),但在JSON中它被序列化为数值(0,1,2,3).我怎样才能避免这种不一致?我也希望JSON序列化中的字符串.

Jon*_*ren 36

从Web API RC开始,您可以通过在以下期间应用StringEnumConvert现有JsonMediaTypeFormatter转换器集合来获取枚举的字符串表示Application_Start():

var jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
var enumConverter = new Newtonsoft.Json.Converters.StringEnumConverter();
jsonFormatter.SerializerSettings.Converters.Add(enumConverter);
Run Code Online (Sandbox Code Playgroud)