AspNetCore Json序列化设置

AspNetCore 中的Json序列化处理已经默认使用Newtonsoft.Json库了...

比如像MVC中:

public I

不过使用过程中会发现一些问题,其实这算默认设置吧:

  • Json序列化后的字段格式会变成小驼峰形式
  • Json序列化时的日期时间格式化
  • 没有处理循环引用的问题,比如EntityFramework的导航循环Json序列化时循环引用异常
  • ...

可以通过Startup.cs修改全局默认的Json序列化设置:

// Startup.cs

// ...
public void ConfigureServices(IServiceCollection services)
{
    services.addMvc()
        .AddJsonOptions(setupAction =>
        {
            // 忽略循环引用,规避EntityFramework导航属性json序列化时的循环引用问题
            setupAction.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
            
            // 使用默认json序列化,规避字段小驼峰命名法
            //setupAction.SerializerSettings.ContractResolver = new DefaultContractResolver();
            
            // 设置json序列化的日期时间格式
            //setupAction.SerializerSettings.DateFormatString = "yyyy-MM-dd";
        });
}
//...

参考文档:

原文地址:https://www.cnblogs.com/taadis/p/12125962.html