我有一个包含enum
属性的类。
我的枚举:
public enum ToasterType
{
[EnumMember(Value = "success")]
success,
[EnumMember(Value = "error")]
error
}
我的班级:
[Serializable]
public class ToastrMessage
{
[JsonConverter(typeof(StringEnumConverter))]
public ToasterType ToasterType { get; set; }
// bla bla bla
}
用Json返回类:
public async Task<ActionResult> Authentication()
{
return Json(this.ToastrMessage(ToasterType.success));
}
并输出:
为什么1
?
但我需要以下内容:
ToasterType: success
答案 0 :(得分:3)
如果您只想使用StringEnumConverter
进行当前操作,则可以在调用json()
之前添加以下内容
//convert Enums to Strings (instead of Integer)
JsonConvert.DefaultSettings = (() =>
{
var settings = new JsonSerializerSettings();
settings.Converters.Add(new StringEnumConverter { CamelCaseText = true });
return settings;
});
要全局应用此行为,只需在Global.asax或启动类中添加以下设置。
HttpConfiguration config = GlobalConfiguration.Configuration;
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add
(new Newtonsoft.Json.Converters.StringEnumConverter());