Принуждение сериализатора Json к созданию определенного формата даты и времени (гггг-мм-ддТчч: мм: сс.msmsmsZ)

StackOverflow https://stackoverflow.com/questions/2435209

Вопрос

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"

?

Это было полезно?

Решение

Даже если вы реализуете JavaScriptConverter, вам придется поместить строку в объект.К счастью, есть способ взлома, описанный здесь:

http://blog.calyptus.eu/seb/2011/12/custom-datetime-json-serialization/

Другие советы

Вам нужно сделать JavaScriptConverter класс и зарегистрируйте его с помощью RegisterConverters метод.

Я рекомендую вам (и всем остальным, у кого есть эта проблема) просто переключиться на библиотеку ServiceStack.Text - интеграция займет около 30 секунд, и вы решите кучу других проблем.Взгляните на этот вопрос, опубликованный и на который я ответил:

Преобразование сериализации ASP.NET MVC Json DateTime в UTC

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top