【问题标题】:.NET Core json serialization of properties on dynamic (ExpandoObject).NET Core json 动态属性序列化 (ExpandoObject)
【发布时间】:2017-05-10 19:15:31
【问题描述】:

我在 .NET Core 1.0 中有一个 Web api,我喜欢默认将属性序列化为 camelCasing 而不是 PascalCasing 的新功能。

但是,我的一些 api 方法返回 dynamicExpandoObject 并且它们的属性按原样序列化,这意味着如果我将它们作为 PascalCasing 添加到动态对象中,那么它们将被序列化。

我认为这是因为动态对象与 Dictionary<string, object> 密切相关,这就是它表现不同的原因。

我怎样才能使dynamiccamelCasing 以一种很好的方式进行序列化?

(我可以通过在从 API 返回它们之前使用小写键在每个返回的动态中重新创建字典来做到这一点,但我正在寻找一种非常好的方法来实现目标)

【问题讨论】:

标签: asp.net-web-api asp.net-core .net-core


【解决方案1】:

这可以在 Startup.cs -> ConfigureServices 中解决:

services.AddMvc().AddJsonOptions(opt =>
{
    opt.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});

有几处提到这是现在 ASP.NET Core 1.0 的默认行为,但实际上并非如此。添加此行会影响动态属性,默认情况下不受影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2023-03-12
    相关资源
    最近更新 更多