NetCore偶尔有用篇:NetCore项目WebApi返回Json属性大小写,含NetCore2.0 NetCore3.0

一、概述


1、前面文章介绍Controller的大小写问题时,目的只是介绍它的差异性,有同学回复了,这里把它作为一个点写一下吧。

 

二、默认定义的转换结果


1、写一个返回对象的方法。

2、运行查看结果。

    public class OneController : Controller
    {
        public Model GetString(string id)
        {
            return new Model() { ID = id, Name = "aa" };
        }
    }

    public class Model
    {
        public string ID { get; set; }
        public string Name { get; set; }
    }

运行结果 

 三、自定义转换方法 (以下是NetCore 2.0的写法)


1、添加Startup自定义转换代码。

2、重新运行查看结果。

 

 四、自定义转换方法 (以下是NetCore 3.0的写法)


 需要先引用 Microsoft.AspNetCore.Mvc.NewtonsoftJson 包 

            services.AddMvc().AddNewtonsoftJson(options =>
            {
                // 忽略循环引用
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                // 不使用驼峰
                options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                // 设置时间格式
                options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
                // 如字段为null值,该字段不会返回到前端
                // options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            });
            //
            services.AddControllers().AddNewtonsoftJson(options =>
            {
                // 忽略循环引用
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                // 不使用驼峰
                options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                // 设置时间格式
                options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
                // 如字段为null值,该字段不会返回到前端
                // options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            });

 

posted on 2018-05-09 17:45  陈银鑫  阅读(10659)  评论(3编辑  收藏  举报