Costringere JSON serializzatore in produzione di un particolare formato datetime (aaaa-mm-ggThh: mm: ss.msmsmsZ)

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

Domanda

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));

produce:

{"accountId":12345,"timeStamp":"\/Date(1268420981135)\/","userType":"theUserType"}

Come posso presentare la data come:

"timestamp":"2010-02-15T23:53:35.963Z"

È stato utile?

Soluzione

Anche se si implementa un JavaScriptConverter si dovrebbe avvolgere la stringa in un oggetto. Per fortuna c'è un hack intorno ad esso descritto qui:

http://blog.calyptus.eu/seb / 2011/12 / custom-datetime-jSON-serializzazione /

Altri suggerimenti

È necessario fare una JavaScriptConverter di classe e registrarlo utilizzando il metodo RegisterConverters .

Vi consiglio (e tutti gli altri con questo problema) solo passare alla libreria ServiceStack.Text - è come 30 secondi per integrare e potrai risolvere mucchio di altri problemi. Date un'occhiata a questa domanda postato & risposto da me:

conversione serializzazione ASP.NET MVC JSON DateTime UTC

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top