c# - Asp.net Core Razor Pages 序列化不适用于 Startup.cs 中的 CamelCasePropertyNamesContractResolver
问题描述
我正在使用 Asp.net Core Razor Pages,我正在返回 json。我需要将 json 全部放在骆驼外壳中,因此我尝试像这样在Startup.cs中设置解析器
services.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});
然而这不起作用,剃须刀页面仍然在 Pascal 外壳中返回 json。我该如何纠正这个问题?谢谢你。
解决方案
当您使用 时,您正在配置一个特定于 ASP.NET Core MVCAddJsonOptions
的实例。JsonSerializerSettings
当您使用 时JsonConvert.SerializeObject
,您使用的是不同的JsonSerializerSettings
. 为了影响该实例,您可以使用JsonConvert.DefaultSettings
,如下所示:
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
不幸的是,您所做的更改DefaultSettings
不适用于通过配置的实例AddJsonOptions
- 您需要单独配置这些。如果您有兴趣,您可以看到它是如何由sourceJsonSerializerSettingsProvider
中的 a 创建的单独实例。
推荐阅读
- python - 在 django 项目中出现 typeError 错误
- python - 将具有形状(m,n)的输入转换为(m,k,n),其中k作为数组的字符串表示“隐藏”在内部?
- php - PHP计算每个for循环中数组中非空输入数据的数量
- azure - 使用 Webapp-->Azure SQL 时 Azure SQL 数据库流量迁移到较新的网关
- sql-server - 使用命令提示符执行 SSIS 包
- php - 如何在 PHP 中获取和保存客户端的 IP 地址、位置和其他数据?
- php - PHPMailer 的问题:require():需要打开失败
- php - SQL数据库不更新PHP中的数据
- flutter - Flutter web Firebase 分析类型错误:dart.global.firebase.analytics 不是函数
- asp.net - ASP.NET CORE 中不允许主域的 CORS 问题