我正在使用Web API帮助文档来连接API开发人员和UI客户端开发人员。 我想在帮助中定义的项目之一是日期格式。 并希望在API操作详细信息页面的请求/响应信息样本中对其进行自定义:
我有请求实体:
public class Request
{
public string Id {get;set;}
public string Type {get;set;}
public DateTime Date {get;set;}
}
这是帮助页面的默认表示:
{
"Id": "sample string 1",
"Type": "sample string 2",
"Date": "2014-08-12T19:33:09.6221727+00:00"
}
我希望它如下:
{
"Id": "sample string 1",
"Type": "sample string 2",
"Date": "08/13/2014"
}
我如何实现这一目标?
答案 0 :(得分:3)
事实证明,ASP.NET Web.API使用通用的Json.NET格式化程序,您可以为此目的注册自己的日期转换器:
public class MyDateFormatConverter : DateTimeConverterBase
{
public override object ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer)
{
return DateTime.Parse(reader.Value.ToString());
}
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
{
writer.WriteValue(((DateTime)value).ToString("d"));
}
}
然后在GLOBAL(WebApiConfig,而不是HelpPageConfig)配置中注册它:
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new MyDateFormatConverter());