.NET Core 3.0 Web API 字典键驼峰大小写问题



我有一个.NET Core Web Api,我最近从2.2版迁移到3.0版。 我的一个控制器中有一个返回字典的路由/方法。我现在遇到的问题是,当从 API 返回响应时,字典键在 PascalCase 中,而不是像我升级之前那样在驼峰中。

在更新到 .NET Core 3.0 之前,我的启动中有以下代码

services.AddMvcCore()
.AddJsonOptions(opts => 
{
opts.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});

现在,自从删除了 Newtonsoft Json.Net 软件包以来,我删除了上面的代码块并将其替换为以下内容 -

services.AddControllers(config =>
{
// Some configuration in here
})
.AddJsonOptions(options => options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase)

出于某种原因,当我希望字典键位于 CamelCase 中时,我仍然将字典键作为 Pascal 案例取回。我尝试了其他几种方法无济于事。 我通读了迁移文档,找不到有关此特定主题的任何信息。我还在 GitHub 上遇到了一些相关的问题,但没有帮助

  1. 问题 1
  2. 问题 2

也许我错过了某个地方的额外配置才能让它工作,或者我需要回到 Newtonsoft 包,我只是不确定。

这现在可以在 .Net 7 中实现(可能更早(。 在程序中.cs文件:

services.AddControllers()
.AddJsonOptions(o =>
{
o.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase;
});

最新更新