ASP.NET 核心 - JsonConvert.DeserializeObject 不遵守 CamelCasePropertyNamesContractResolver

ASP.NET Core - JsonConvert.DeserializeObject does not respect CamelCasePropertyNamesContractResolver

我需要将一些 JSON 文件输出到客户端应用程序。所以,我有以下代码

var content = System.IO.File.ReadAllText(this.path);
var model = JsonConvert.DeserializeObject(content, new JsonSerializerSettings() { 
    ContractResolver = new CamelCasePropertyNamesContractResolver() 
});

return Ok(model);

它应该作为带有驼峰式 属性 名称的对象返回,但我得到的它与 JSON 文件中的相同(PascalCase)

需要说明的是,在启动文件中,IMvcBuilder.AddJsonOptions还设置了

services.AddMvc()
    .AddJsonOptions(options => {
        options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
        options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local;
});

并且它运行良好,其他控制器 returns 对象符合预期。问题仅在于从 JSON 文件转换的对象。

我该如何解决?

好的,我找到了修复它的方法

var model = JsonConvert.DeserializeObject<JObject>(content);

现在它按预期工作了:|