我希望对 JSON 进行“正确”序列化(camelCase),以及在必要时更改日期格式的能力。
对于 Web API,这很容易 - 在 Global.asax 我执行以下代码
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
此代码在管道级别以我想要的方式处理序列化。
我想在 MVC 4 中完成同样的事情 - 从控制器操作方法返回的任何 JSON 都可以正确序列化。经过一番搜索,我发现以下代码可以在 Global.asax 应用程序启动中抛出:
HttpConfiguration config = GlobalConfiguration.Configuration;
Int32 index = config.Formatters.IndexOf(config.Formatters.JsonFormatter);
config.Formatters[index] = new JsonMediaTypeFormatter
{
SerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }
};
它似乎执行得很好,但是当我从控制器返回 JSON 时,它都是 PascalCased。我的操作方法的一个简单示例:
private JsonResult GetJsonTest()
{
var returnData = dataLayer.GetSomeObject();
return Json(returnData, JsonRequestBehavior.AllowGet);
}
我要解决这个问题了吗?知道如何在管道级别完成此任务吗?