ASP.NET完全忽略JSON SerializerSettings

时间:2019-06-29 23:35:31

标签: json asp.net-core lowercase

当我从服务器以大写字母发送JSON时,客户端以驼峰形式接收它,我想完全撤消此转换。

我在startup.cs中添加了

services.AddMvc () .AdJsonOptions (options => {
    options.SerializerSettings.ContractResolver = new DefaultNamingStrategy ();
});

但是它返回了一个错误:

Error CS0266 Can not implicitly convert type 
'Newtonsoft.Json.Serialization.DefaultNamingStrategy' to 
'Newtonsoft.Json.Serialization.IContractResolver'. An explicit conversion 
exists
(are you missing a cast?)

是否可以完全按照数据库中的格式发送JSON?

非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

使用DefaultContractResolver,例如:

.AddJsonOptions(options =>
{
    options.SerializerSettings.ContractResolver = new DefaultContractResolver();
})

您不能做您要求的事情:

  

是否可以完全按照数据库中的格式发送JSON?

不!因为您必须告诉序列化器该怎么做。

想象一下,您数据库中的列名会有所不同,例如CustomerName(大写C)和clientName(小写c)您的序列化程序应该做什么?

如果它“无能为力”,则必须编写自己的实现JsonConverter的转换器。