欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-28 09:25:28
...

在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为小驼峰命名