2.日期类型默认格式化处理,设置为:yyyy-MM-dd HH:mm:ss。
public class UserInfoModel { public DateTime DateTime { get; set; } public int NumberIndex { get; set; } public string UserName { get; set; } }UserInfoController
[ApiController] [Route("[controller]")] public class UserInfoController : ControllerBase { private static readonly string[] NameList = new[] { "堆代码", "小明同学", "DotNetGuide", "小艺同学", "Edwin" }; // 堆代码 duidaima.com [HttpGet(Name = "GetUserInfo")] public IEnumerable<UserInfoModel> Get() { return Enumerable.Range(1, 5).Select(index => new UserInfoModel { DateTime = DateTime.Now.AddDays(index), NumberIndex = Random.Shared.Next(-20, 55), UserName = NameList[Random.Shared.Next(NameList.Length)] }).ToArray(); } }
public class DateTimeJsonConverter : JsonConverter<DateTime> { public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { return DateTime.Parse(reader.GetString()); } public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options) { writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss")); } }在Program.cs中全局配置
builder.Services.AddControllers().AddJsonOptions(options => { //命名规则,该值指定用于将对象上的属性名称转换为另一种格式(例如驼峰大小写)或为空以保持属性名称不变的策略[前端想要使用与后端模型本身命名格式输出]。 options.JsonSerializerOptions.PropertyNamingPolicy = null; //自定义输出的时间格式 options.JsonSerializerOptions.Converters.Add(new DateTimeJsonConverter()); });配置后输出的Json数据
builder.Services.AddControllers().AddNewtonsoftJson(options => { //修改属性名称的序列化方式[前端想要使用与后端模型本身命名格式输出] options.SerializerSettings.ContractResolver = null; //方式1:日期类型默认格式化处理 options.SerializerSettings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }); //方式2:日期类型默认格式化处理 //options.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat; //options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; });
配置后输出的Json数据