1、配置Json返回格式和時間格式
#region 配置返回值格式 builder.Services.AddControllers() .AddJsonOptions(options => { //格式化日期時間格式 options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter("yyyy-MM-dd HH:mm:ss")); //數據格式首字母小寫 //options.JsonSerializerOptions.PropertyNamingPolicy =JsonNamingPolicy.CamelCase; //數據格式原樣輸出 options.JsonSerializerOptions.PropertyNamingPolicy = null; //取消Unicode編碼 options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All); //忽略空值 options.JsonSerializerOptions.IgnoreNullValues = true; //允許額外符號 options.JsonSerializerOptions.AllowTrailingCommas = true; //反序列化過程中屬性名稱是否使用不區分大小寫的比較 options.JsonSerializerOptions.PropertyNameCaseInsensitive = false; }); builder.Services.AddEndpointsApiExplorer(); #endregion
2、DatetimeJsonConverter類
/// <summary> /// 格式化返回的時間格式 /// </summary> public class DatetimeJsonConverter : JsonConverter<DateTime> { private readonly string format; public DatetimeJsonConverter(string _format) { format = _format; } public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType == JsonTokenType.String) { if (DateTime.TryParse(reader.GetString(), out DateTime date)) return date; } return reader.GetDateTime(); } public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options) { writer.WriteStringValue(value.ToString(format)); } }