从.Net Core 2.1 Web API中的JSON DateTime响应中删除时间组件
我有一个ASP.NETCore2.1WebAPI,它在一个控制器操作中返回日期时间。JSON如下所示:从.Net Core 2.1 Web API中的JSON DateTime响应中删除时间组件,json,asp.net-core-webapi,date-formatting,iso8601,asp.net-core-2.1,Json,Asp.net Core Webapi,Date Formatting,Iso8601,Asp.net Core 2.1,我有一个ASP.NETCore2.1WebAPI,它在一个控制器操作中返回日期时间。JSON如下所示: 1965-02-03T00:00:00 我想这是ISO8601 因为这实际上是一个出生日期,我希望它不包含时间成分。Net没有只包含日期的数据类型(就像我的底层MySQL数据库一样),所以我必须使用DateTime类型。有没有办法将发送到消费客户端的JSON数据格式化为YYYY-MM-DD 控制器操作非常简单: // GET: api/Persons [HttpGet]
1965-02-03T00:00:00
我想这是ISO8601
因为这实际上是一个出生日期,我希望它不包含时间成分。Net没有只包含日期的数据类型(就像我的底层MySQL数据库一样),所以我必须使用DateTime类型。有没有办法将发送到消费客户端的JSON数据格式化为YYYY-MM-DD
控制器操作非常简单:
// GET: api/Persons
[HttpGet]
public IEnumerable<Person> GetPerson()
{
return _context.Persons;
}
要在
Asp.Net核心
中配置Json序列化
,可以使用AddJsonOptions
和JsonSerializerSettings
也许会有帮助。它是老式的ASP.NET,但考虑到ASP.NET核心序列化过程使用JSON.NET,其原理是相同的。
public partial class Person
{
public int Id { get; set; }
public string Forenames { get; set; }
public string Surname { get; set; }
public string Title { get; set; }
public string IdNumber { get; set; }
public DateTime? DateOfBirth { get; set; }
}
//
// Summary:
// Gets or sets how System.DateTime and System.DateTimeOffset values are formatted
// when writing JSON text, and the expected date format when reading JSON text.
// The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
public string DateFormatString { get; set; }
services.AddMvc()
.AddJsonOptions(opt => {
opt.SerializerSettings.DateFormatString = "yyyy-MM-dd";
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);