asp.net core 3.0 MVC JSON 全局配置
asp.net core 3.0 MVC JSON 全局配置
- System.Text.Json(default)
- 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")); } }
- Newtonsoft.Json
- Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.1.0
- 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)