Bry*_*Man 6 asp.net-core asp.net-core-webapi asp.net-core-3.0
我有一个 .NET Core Web Api,最近从版本 2.2 迁移到版本 3.0。我的一个控制器中有一个返回字典的路线/方法。我现在遇到的问题是,当从 api 返回响应时,字典键采用 PascalCase,而不是像我升级之前那样采用 CamelCase。
在更新到 .NET Core 3.0 之前,我的启动中有以下代码
services.AddMvcCore()
.AddJsonOptions(opts =>
{
opts.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});
Run Code Online (Sandbox Code Playgroud)
现在,由于删除了 Newtonsoft Json.Net 包,我删除了上面的代码块并将其替换为以下代码 -
services.AddControllers(config =>
{
// Some configuration in here
})
.AddJsonOptions(options => options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase)
Run Code Online (Sandbox Code Playgroud)
由于某种原因,当我希望字典键采用 CamelCase 格式时,我仍然以 Pascal Case 形式取回字典键。我尝试了其他几种方法都没有效果。我通读了迁移文档,但找不到有关此特定主题的任何信息。我还在 GitHub 上遇到了一些相关的问题,但没有帮助
也许我在某个地方错过了额外的配置才能使其正常工作,或者我需要返回 Newtonsoft 软件包,我只是不确定。
现在,这在 .Net 7(可能更早)中是可能的。在program.cs文件中:
services.AddControllers()
.AddJsonOptions(o =>
{
o.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1846 次 |
| 最近记录: |