asp.net core 3.0 MVC JSON 全局配置

asp.net core 3.0 MVC JSON 全局配置

  • System.Text.Json(default)
  1. startup配置代码如下:
using System.Text.Encodings.Web;using System.Text.Json;using System.Text.Unicode;public void ConfigureServices(IServiceCollection services){     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"));        }    }
  1. 官方API
  • Newtonsoft.Json
  1. Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.1.0
  2. startup配置代码如下:
using Newtonsoft.Json;using Newtonsoft.Json.Serialization;public void ConfigureServices(IServiceCollection services){    services.AddControllersWithViews(...).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;            });}
(0)

相关推荐