如何将cas生成的JSON对象更改回PascalCase?

如何将cas生成的JSON对象更改回PascalCase?,json,asp.net-web-api,asp.net-core,Json,Asp.net Web Api,Asp.net Core,我正在编写一个WebAPICore来从数据库返回JSON对象。由于未知原因,默认情况下,属性以camelCase形式返回 我已经检查了SQL脚本,它确实为数据字段返回了正确的大小写。但当我使用该服务时,对象的属性会自动更改为camelCase 例如,OfferingID返回为OfferingID 现有的返回JSON对象 { "offeringID": 120842, "courseCode": "FLTE2A1F/1", "courseName": "FLT - E

我正在编写一个WebAPICore来从数据库返回JSON对象。由于未知原因,默认情况下,属性以camelCase形式返回

我已经检查了SQL脚本,它确实为数据字段返回了正确的大小写。但当我使用该服务时,对象的属性会自动更改为camelCase

例如,OfferingID返回为OfferingID

现有的返回JSON对象

  {
    "offeringID": 120842,
    "courseCode": "FLTE2A1F/1",
    "courseName": "FLT -  E2 Certificate in Skills for Working Life (Animals) (QCF)"
  }
我要返回的格式

      {
        "OfferingID": 120842,
        "CourseCode": "FLTE2A1F/1",
        "CourseName": "FLT -  E2 Certificate in Skills for Working Life (Animals) (QCF)"
      }
模型-产品:

public class Offering
    {
        [Key]
        public int OfferingID { get; set; }
        public string CourseCode { get; set; }
        public string CourseName { get; set; }
    }
我的WebAPI控制器Get方法

        [HttpGet("{id}")]
        public async Task<IActionResult> GetOfferingDetail(int id)
        {
            var obj = await _context.Offerings.FromSql("dbo.GetOfferingDetail @p0", id).SingleOrDefaultAsync();

            if (obj == null)
                return NotFound("ID not found");

            return new ObjectResult(obj);
        }
[HttpGet(“{id}”)]
公共异步任务GetOfferingDetail(int id)
{
var obj=await_context.offices.FromSql(“dbo.GetOfferingDetail@p0”,id).SingleOrDefaultAsync();
if(obj==null)
返回未找到(“未找到ID”);
返回新的ObjectResult(obj);
}
在Startup.cs中配置服务方法:

public void ConfigureServices(IServiceCollection services)
        {

            services.AddDbContext<DbContexts.OakCommonsDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyConnection")));
            services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()
                                                                        .AllowAnyMethod()
                                                                         .AllowAnyHeader()));

            var mvccore = services.AddMvc();
            mvccore.AddJsonOptions(o => o.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore);            
        }
public void配置服务(IServiceCollection服务)
{
services.AddDbContext(options=>options.UseSqlServer(Configuration.GetConnectionString(“MyConnection”));
services.AddCors(options=>options.AddPolicy(“AllowAll”,p=>p.AllowAnyOrigin())
.AllowAnyMethod()
.AllowAnyHeader());
var mvccore=services.AddMvc();
mvccore.AddJsonOptions(o=>o.SerializerSettings.NullValueHandling=Newtonsoft.Json.NullValueHandling.Ignore);
}

您能告诉我如何按照我在模型中定义的确切情况返回JSON对象吗?

下面是工作代码。默认情况下,WebAPI核心将使用CamelCasePropertyNamesContractResolver()。您需要将其更改为DefaultContractResolver,以便按照您在模型中定义的方式进行渲染

DefaultContractResolver位于Newtonsoft.Json.Serialization命名空间下

services.AddMvc()
    .AddJsonOptions(o => o.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)
    .AddJsonOptions(o => o.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver());    

您正在使用
services.AddMvc().AddJsonOptions(opts=>{opts.SerializerSettings.ContractResolver=new CamelCasePropertyNamesContractResolver();})
ConfigureServices
方法中?我已更新代码以包括ConfigureServices方法。我需要哪个库才能访问新的CamelCasePropertyNamesContractResolver()?