Принуждение Json Serializer к созданию определенного формата даты и времени (гггг-мм-ддтч: мм: сс.msmsmsZ) - PullRequest
3 голосов
/ 12 марта 2010
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 ]

2 голосов
/ 12 марта 2010

Вам необходимо создать класс JavaScriptConverter и зарегистрировать его, используя метод RegisterConverters.

1 голос
/ 28 декабря 2011

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

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

0 голосов
/ 21 февраля 2013

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

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

...