我正在使用Asp.net Core Razor Pages而且我正在返回json。我需要json全部采用骆驼套管,因此我尝试将解析器设置为 Startup.cs ,就像这样
services.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});
然而这不起作用,剃刀页面仍然在Pascal框中返回json。我该如何纠正这个问题?谢谢。
答案 0 :(得分:1)
使用AddJsonOptions
时,您正在配置特定于ASP.NET Core MVC的JsonSerializerSettings
实例。当您使用JsonConvert.SerializeObject
时,您正在使用不同的 JsonSerializerSettings
实例。为了影响 实例,您可以使用JsonConvert.DefaultSettings
,如下所示:
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
很遗憾,您对DefaultSettings
所做的更改不适用于通过AddJsonOptions
配置的实例 - 您需要单独配置这些更改。如果您有兴趣,可以看看这是source中由JsonSerializerSettingsProvider
创建的单独实例。