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

public class Person
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string UserAccount { get; set; }
    public int Sex { get; set; }
    public int Age { get; set; }
    public DateTime CreateTime { get; set; }
    public DateTime UpdateTime { get; set; }
    public DateTime UserLastTime { get; set; }
}

简单的Web Api的代码如下:

[HttpGet]
[Route("v1/app/getPerson")]
public async Task<IEnumerable<Person>> GetPerson()
{
    IEnumerable<Person> persons = new List<Person> { 
        new Person() { UserId=1,UserName="张三",UserAccount="13333333333",Sex=1, Age=18,CreateTime=DateTime.Now,UpdateTime=DateTime.Now,UserLastTime=DateTime.Now},
        new Person() { UserId=2,UserName="李四",UserAccount="14444444444",Sex=2, Age=20,CreateTime=DateTime.Now,UpdateTime=DateTime.Now,UserLastTime=DateTime.Now},
        new Person() { UserId=3,UserName="王五",UserAccount="15555555555",Sex=1, Age=24,CreateTime=DateTime.Now,UpdateTime=DateTime.Now,UserLastTime=DateTime.Now},
    };
    return persons;
}

返回的数据是这样的:

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

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

然而在Asp.Net Core 3.1版本下,这段代码出现错误,使用下面的设置:

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

 

本文地址:https://blog.csdn.net/qq_27559331/article/details/107543932