asp.net core 3.0 MVC JSON 全局设置
- System.Text.Json(default)
- startup设置代码如下:
- <code>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;
- });
- }</code>
复制代码- <code>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"));
- }
- }</code>
复制代码
- 官方API
- Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.1.0
- startup设置代码如下:
- <code>using Newtonsoft.Json;
- using Newtonsoft.Json.Serialization;
- public void ConfigureServices(IServiceCollection services)
- {
- 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;
- });
- }</code>
复制代码 |