在寫.net core項目時發現后台返回的json數據的首字母都是小寫,然而我定義的卻是大寫。原來.net core使用Newtonsoft.Json時采用駝峰樣式的key。要想改為我們想要的效果那就不使用默認的駝峰式命名。有兩種方式。一種是返回數據時進行設置,另一種是全局設置
一.返回數據時設置
[HttpPost] public ActionResult GetData(int? id) { JsonSerializerSettings settings = new JsonSerializerSettings(); //EF Core中默認為駝峰樣式序列化處理key //settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); //使用默認方式,不更改元數據的key的大小寫 settings.ContractResolver = new DefaultContractResolver(); return Json(bll.GetData(id),settings); }
二.全局設置
在Startup文件中進行配置
public void ConfigureServices(IServiceCollection services) { services.AddTransient<HomeBll>(); services.AddTransient<ProductBll>(); //全局配置Json序列化處理 services.AddMvc().AddNewtonsoftJson(options => { //忽略循環引用 options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; //不使用駝峰樣式的key options.SerializerSettings.ContractResolver = new DefaultContractResolver(); //設置時間格式 options.SerializerSettings.DateFormatString = "yyyy-MM-dd"; }); }