Dot-Net

枚舉序列化 Json 與 XML

  • May 19, 2012

我的項目中有以下枚舉

public enum CameraAccessMethod
{
   Manual = 0,
   Panasonic = 1,
   Axis = 2,
   AirCam = 3
}

我有一個對象,它根據不同的場景被序列化為 json 或 XML,並且對象的屬性之一是 type CameraAccessMethod。我遇到的問題是,當這個屬性被序列化為 XML 時,它將給出枚舉值的字元串表示形式(Manual、Panasonic、Axis、Aircam),但在 JSON 中它被序列化為數值(0、1、2、3)。我怎樣才能避免這種不一致?我也想要 JSON 序列化中的字元串。

由於 Web API RC,您可以通過在以下期間將 aStringEnumConvert應用於現有JsonMediaTypeFormatter轉換器集合來獲取枚舉的字元串表示形式Application_Start()

var jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
var enumConverter = new Newtonsoft.Json.Converters.StringEnumConverter();
jsonFormatter.SerializerSettings.Converters.Add(enumConverter);

引用自:https://stackoverflow.com/questions/10664314