考虑以下代码:
public Gender Get()
{
return Gender.Female;
}
public enum Gender
{
Male,
Female
}
此代码是一个返回Gender
枚举的Web API控制器。当我们使用XmlTypeFormatter
并调用该方法时,它会返回Male
或Female
。但是当我们使用JsonTypeFormatter
时,我们得到枚举的值,例如1。
为什么会这样?!我们如何从Female
获得Male
或JsonTypeFormatter
?
答案 0 :(得分:35)
在你的申请中开始:
using Newtonsoft.Json;
protected void Application_Start()
{
SerializeSettings(GlobalConfiguration.Configuration);
}
void SerializeSettings(HttpConfiguration config)
{
JsonSerializerSettings jsonSetting = new JsonSerializerSettings();
jsonSetting.Converters.Add(new Converters.StringEnumConverter());
config.Formatters.JsonFormatter.SerializerSettings = jsonSetting;
}
答案 1 :(得分:24)
由于设置对象应该已经存在,这里是hutchonoid代码的简化版本:
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());