我的应用程序需要(几乎是默认的)JSON序列化设置:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddJsonOptions(options =>
{
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
options.SerializerSettings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local;
});
对于一个控制器,我需要在输入(使用 [FromBody] myComplexObject
进行模型绑定)和输出方面采用不同的命名策略。
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
我的问题与 Web API:在操作或控制器级别上配置JSON序列化程序设置 几乎相同,唯一的区别在于我要求针对AspNet Core 2.2+进行翻译,在其中
IControllerConfiguration
不再存在。Core 2.1+的等效问题在此处有一个响应:在ASP.NET Core 2.1上配置控制器的输入/输出格式化程序 那里的答案似乎有些片段或不完整 - 很难想象没有更简单的方法来实现此目的。 是否有任何想法可以在单个控制器内使用DefaultContractResolver处理所有输入和输出?
[FromBody] object
的输入格式化程序,对吗?我认为这也是原始问题中缺少的部分。 - ExternalUseSomeProperty
和someProperty
应该可以在不进行任何更改的情况下工作。它还可以使用SOMePRoperTY
- 如果您在JSON中提供多个变体,则最后一个获胜。 - Kirk Larkin