Asp.Net Core 3.1 Web Api 返回数据字段被转换为驼峰格式的解决办法

使用Asp.Net Core 3.1 的Web Api 返回数据发现字段名称被转换为驼峰格式,比如下面的类:

public class Person
    {
        [JsonProperty(PropertyName = "ID")]
        public int ID { get; set; }

        [JsonProperty(PropertyName = "Name")]
        public string Name { get; set; }

        public int Age { get; set; }

        public DateTime JoinDate { get; set; }

        public bool Married { get; set; }

        public int Sex { get; set; }
}

简单的Web Api的代码如下:

[HttpGet]
        public ActionResult<IEnumerable<Person>> Get()
        {
            return DemoData.Values.ToList();
         }

返回的数据是这样的:


图片.png

这个问题在以前的版本也遇到过,解决的方法是增加如下设置:

services.AddMvc()
.AddJsonOptions(opt =>
            {
                opt.SerializerSettings.ContractResolver = new DefaultContractResolver();//json字符串大小写原样输出
            });

然而在Asp.Net Core 3.1版本下,这段代码出现错误,网上搜了一下,有人在rc版本使用AddNewtonsoftJson替换解决了这个问题,可是在我这里依然不行,最后发现下面的设置起作用:

services.AddMvc()
                .AddJsonOptions(options => options.JsonSerializerOptions.PropertyNamingPolicy = null)

不得不吐槽一下.Net Core的发展,版本之间的变化太多,给人感觉一致处在不稳定的开发状态,.Net Framework虽然老一些,但稳定性和兼容性要好很多。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容