在ASP.NET Web API的JSON输出中没有时间的日期

Roo*_*oft 28 datetime json json.net asp.net-web-api

是否有一种简单的方法来配置JSON.NET,以便某些 DateTime字段将被没有时间格式化,其他DateTime字段仍将按时间格式化?

例:

{ firstName: 'John', lastName : 'Doe', birthday: '1965-09-23' }
Run Code Online (Sandbox Code Playgroud)

You*_*oui 56

如果您需要此选项仅影响特定字段,请首先创建转换器类型:

public class OnlyDateConverter : IsoDateTimeConverter
{
    public OnlyDateConverter()
    {
        DateTimeFormat = "yyyy-MM-dd";
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将此属性添加到您想要的任何字段/属性:

[JsonConverter(typeof(OnlyDateConverter))]
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,即使我使用此属性装饰模型的属性,我仍然收到发送的时间。 (2认同)

You*_*oui 5

尝试添加此行以配置Web API:

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
    new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd" });
Run Code Online (Sandbox Code Playgroud)

  • 这将在全球范围内产生影响,而不仅仅是根据要求在"某些"领域产生影响. (8认同)