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);
现在它按预期工作了:|
我需要将一些 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);
现在它按预期工作了:|