C# JsonSerializerSettings和Asp.Net Core
正在尝试设置JsonOutputFormatter选项:C# JsonSerializerSettings和Asp.Net Core,c#,json.net,asp.net-core,C#,Json.net,Asp.net Core,正在尝试设置JsonOutputFormatter选项: var jsonFormatter = (JsonOutputFormatter) options.OutputFormatters.FirstOrDefault(f => f is JsonOutputFormatter); if (jsonFormatter != null) { jsonFormatter.SerializerSettings.ContractResolver = new CamelCaseProper
var jsonFormatter = (JsonOutputFormatter) options.OutputFormatters.FirstOrDefault(f => f is JsonOutputFormatter);
if (jsonFormatter != null)
{
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
或
但当我加上这个,我得到:
MissingMethodException:找不到方法:“Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings()”
我使用的是标准的Microsoft.AspNet.Mvc.Formatters.Json(6.0.0-rc1-final)
编辑:通过安装Newtonsoft.Json 6.0.6
解决了这个问题(这会降低所有其他引用的级别)
有人已经知道了吗?
谢谢..我假设您使用的是ASP.Net Core,您应该使用“Microsoft.AspNetCore.Mvc”: 因此,请将其替换为:
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final"
据此:
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final"
.Net Core 1.0 RTM附带现成的CamelCase格式。这是来自RC2的行为。但是,如果需要修改,请尝试以下代码段:
services.AddMvc()
.AddJsonOptions(opt =>
{
var resolver = opt.SerializerSettings.ContractResolver;
if (resolver != null)
{
var res = resolver as DefaultContractResolver;
res.NamingStrategy = null; // <<!-- this removes the camelcasing
}
});
您尝试在何处插入代码片段?什么是
mvcBuilder
?您是否可以包括您使用的Startup.cs
中的ConfigureServices
方法的代码?这是调用AddJsonOptions
的正确位置。这是我今天随机开始遇到的。老实说,昨天还在工作,这让我很困惑。非常感谢!我想不出自动驼峰套管发生在哪里。知道.Net core 1.1中的调用是什么吗?@LeviFuller它是一样的-AddJsonOptions
我已经配置了序列化设置覆盖。现在我必须复制所有内容,因为我无法直接设置SerializerSettings。在asp.net core中有很多不应该这样做的内容都不是特别相关。我们将转到asp.net core,并决定对所有内部内容使用默认设置(camelCase)。然而,为了向后兼容外部系统,我们需要一个控制器的输出为PascalCase。最好的方法是什么?
services.AddMvc()
.AddJsonOptions(opt =>
{
var resolver = opt.SerializerSettings.ContractResolver;
if (resolver != null)
{
var res = resolver as DefaultContractResolver;
res.NamingStrategy = null; // <<!-- this removes the camelcasing
}
});
services
.AddMvcCore()
.AddJsonFormatters(o => o...);