vs2022 搭建NET6 WebApi 接口項目《六》 返回參數配置


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));
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM