Принуждение сериализатора Json к созданию определенного формата datetime (yyyy-mm-ddThh: mm: ss.msmsmsZ)
MyClass theSession = new MyClass() {
accountId = 12345,
timeStamp = DateTime.Now,
userType = "theUserType"
};
System.Web.Script.Serialization.JavaScriptSerializer Json = new System.Web.Script.Serialization.JavaScriptSerializer();
Response.Write(Json.Serialize(theSession));
Производит:
{"accountId":12345,"timeStamp":"/Date(1268420981135)/","userType":"theUserType"}
Как я могу представить дату как:
"timestamp":"2010-02-15T23:53:35.963Z"
?
3 ответа:
Даже если вы реализуете JavaScriptConverter, вам придется обернуть строку в объект. К счастью, вокруг него есть Хак, описанный здесь:
Http://blog.calyptus.eu/seb/2011/12/custom-datetime-json-serialization/
Вам нужно сделать
JavaScriptConverter
класс и зарегистрировать его с помощьюRegisterConverters
метод.
Я рекомендую вам (и всем остальным с этой проблемой) просто переключиться на ServiceStack.Библиотека текста-это как 30 секунд для интеграции, и вы решите кучу других проблем. Взгляните на этот вопрос, опубликованный и отвеченный мной:
ASP.NET в MVC, JSON и Датавремя сериализации преобразование мирового