ASP.NET MVC、WebApi 设置返回Json为小驼峰命名

在ASP.NET MVC中,我们一般返回json数据,直接return Json(data)就可以了,但是C#字段命名规范是首字母大写,返回Json的时候就是直接序列化了指定的实体对象,就是大写了。

这里自己创建一个JsonResult,继承JsonResult,重写一下ExecuteResult方法,利用Newtonsoft.Json格式化一下数据,再自定义写回到请求中。

    public class MyJsonResult : JsonResult
    {
        public MyJsonResult(object data)
        {
            Data = data;
        }
        public object Data { get; set; }

        public override void ExecuteResult(ControllerContext context)
        {
            var json = JsonConvert.SerializeObject(Data,
                Formatting.Indented,
                new JsonSerializerSettings
                {
                    ContractResolver = new CamelCasePropertyNamesContractResolver(),        //小驼峰命名法
                    DateFormatString = "yyyy-MM-dd HH:mm:ss"
                }
                );
            context.HttpContext.Response.Write(json);
        }
    }

在Controller中直接:return new MyJsonResult(resultData);

WebApi中,我们也设置格式化,Application_Start中:

            GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),        //小驼峰命名法,格式化日期时间
                DateFormatString = "yyyy-MM-dd HH:mm:ss"
            };

最后对比一下返回的json数据:

ASP.NET MVC、WebApi 设置返回Json为小驼峰命名_第1张图片

你可能感兴趣的:(ASP.NET,MVC,C#)