前言:web
就目前而言,.Net Core WebApi中輸出格式幾乎都是json,可是在core中使用任何服務都須要配置,這裏須要配置 AddNewtonsoftJsonjson
1、咱們來看一個例子:api
[Route("details")] [HttpGet] public ActionResult<JObject> Details() { var data = new { Id=1, Name="Lucy", Address="珠穆朗瑪峯", Time = DateTime.Now }; return JObject.FromObject(data); }
不作任何配置,輸出:spa
能夠看出,並無輸出咱們想要的數據。code
處理方法:orm
咱們須要在Startup類中添加AddNewtonsoftJson配置blog
public void ConfigureServices(IServiceCollection services) { services.AddControllers() .AddNewtonsoftJson(); }
結果輸出:文檔
獲得正確的數據。get
2、關於AddNewtonsoftJsonio
ASP.NET Core 3.0 以前的版本中,默認設置使用經過 Newtonsoft.Json
包實現的 JSON 格式化程序。 在 ASP.NET Core 3.0 或更高版本中,默認 JSON 格式化程序基於 System.Text.Json
。
Newtonsoft.Json
經過安裝 Microsoft.AspNetCore.Mvc.NewtonsoftJson
NuGet 包並在中進行配置,可得到對基於的格式化程序和功能的支持 Startup.ConfigureServices
。
AddNewtonsoftJson方法具備重載功能,能夠進行多項配置,如下是一些經常使用的配置
services.AddControllers() .AddNewtonsoftJson(options => { //修改屬性名稱的序列化方式,首字母小寫,即駝峯樣式
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); //修改時間的序列化方式1
options.SerializerSettings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy/MM/dd HH:mm:ss" });
//修改時間的序列化方式2
options.SerializerSettings.DateFormatString = "yyyy/MM/dd HH:mm:ss";
});
從例子中能夠看出,配置後的時間格式已經被格式化了。
微軟官方文檔地址:https://docs.microsoft.com/zh-cn/aspnet/core/web-api/advanced/formatting?view=aspnetcore-5.0