1. 程式人生 > WINDOWS開發 >asp.net core 3 WebApi 返回資料配置

asp.net core 3 WebApi 返回資料配置

一、System.Text.Json

引用:

using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
 

  

  services.AddJsonOptions(options =>
            {
                //格式化日期時間格式
                options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());
                //資料格式首字母小寫
                //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;
            });

  擴充套件:

using System;
using System.Text.Json;
using System.Text.Json.Serialization;


public class DatetimeJsonConverter : JsonConverter<DateTime>
    {
        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("yyyy-MM-dd HH:mm:ss"));
        }
    }

  二、Newtonsoft.Json

  1. Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.1.0
  2. startup配置程式碼如下:
  3. 引用:
    using Newtonsoft.Json;
    using Newtonsoft.Json.Serialization;
    

      

    services.AddNewtonsoftJson(options =>
                {
                    //設定時間格式
                    options.SerializerSettings.DateFormatString = "
    yyyy-MM-dd HH:mm:ss"; //忽略迴圈引用 options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; //資料格式首字母小寫 //options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); //資料格式按原樣輸出 options.SerializerSettings.ContractResolver = new DefaultContractResolver(); //忽略空值 options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; });