【问题标题】:ASP.NET Web API custom DateTime sample value format [duplicate]ASP.NET Web API 自定义 DateTime 示例值格式 [重复]
【发布时间】:2014-10-06 00:32:35
【问题描述】:

我正在使用 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"
}

我怎样才能实现这个目标?

【问题讨论】:

    标签: json.net asp.net-web-api date-format asp.net-web-api2


    【解决方案1】:

    原来 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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      相关资源
      最近更新 更多