Я бы хотел, чтобы JSON был «правильно» сериализован (camelCase) и возможность изменять форматы даты, если это необходимо.Правильная сериализация JSON в MVC 4
Для 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);
}
Я собираюсь сделать это неправильно? Любая идея, как это сделать на уровне трубопровода?
Я не знал, что у json spec необходим верблюжой корпус .... – evanmcdonnal
Как я понимаю, верблюд с обсаженной json более широко принят и не делает этого, может сломать каркасы. Кроме того, наши стандарты развития указывают на то, что я и делаю. – Mario