【发布时间】:2015-10-29 09:58:52
【问题描述】:
我的 WebApiConfig.cs 文件和 Register 方法中有此代码:
var jsonFormatter=config.Formatters.JsonFormatter;
jsonFormatter.UseDataContractJsonSerializer = false;
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
尽管如此(我确实确保这段代码确实是通过使用 Debugger.Launch() 执行的),但它仍然以 Pascal Case 输出我的所有 Json。
下面是action方法中的代码:
[HttpGet]
[Route("Details")]
public IHttpActionResult Details() {
using (var context = new Security.Context()) {
var user = context.Users.Current;
if (user == null) { return Json((object)null); }
return Json(user);
}
}
我看不出我做错了什么,是我遗漏了什么吗?
【问题讨论】:
-
尝试类似 var serialized = JsonConvert.SerializeObject(value, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver()});
-
谢谢,效果很好,它按预期以骆驼大小写输出,但我想全局执行此操作,而不是在每个操作中添加这段代码。
-
我在 action 方法中放置了一个断点,并将全局配置 JsonFormatter 保存到断点之前的局部变量中,这样我就可以在进入 Json 调用之前检查其设置并设置为使用CamelCasePropertyNamesContractResolver 类。我只是不明白为什么它似乎根本没有被使用。
标签: c# json json.net asp.net-web-api2 camelcasing