AspNetCore Json序列化設置

AspNetCore 中的Json序列化處理已經默認使用Newtonsoft.Json庫了...html

好比像MVC中:json

public I

不過使用過程當中會發現一些問題,其實這算默認設置吧:c#

  • Json序列化後的字段格式會變成小駝峯形式
  • Json序列化時的日期時間格式化
  • 沒有處理循環引用的問題,好比EntityFramework的導航循環Json序列化時循環引用異常
  • ...

能夠經過Startup.cs修改全局默認的Json序列化設置:oop

// 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";
        });
}
//...

參考文檔:code

相關文章
相關標籤/搜索