asp.net core 3.0 MVC JSON 全局配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.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;
});
}
以上是关于asp.net core 3.0 MVC JSON 全局配置的主要内容,如果未能解决你的问题,请参考以下文章
这是如何使用 Entity Framework Core 和 ASP.NET Core MVC 2.2+ 和 3.0 创建数据传输对象 (DTO)
在Asp.Net Core 3.0中如何使用 Newtonsoft.Json 库序列化数据
ASP.NET Core 3.0 System.Text.Json骆驼案例序列化
新的 ASP.NET Core 3.0 Json 序列化器遗漏了数据
asp.net core 3.1 MVC/WebApi JSON 全局配置
ASP.NET Core 3.0 [FromBody] 字符串内容返回“无法将 JSON 值转换为 System.String。”