Attualmente i metodi web o la maggior parte dei metodi in .NET classica ASP serializza utilizzando system.web.script.serialization.javascriptserializer classe e questo restituisce membri datetime dell'oggetto JavaScript con valori comeEsiste un modo per restituire DateTime in formato ISO da un metodo web asp .net invece che in formato JSON?
"/ Data (numero di zecche)/"
. Capisco che questo è un problema infame e molte persone suggeriscono di utilizzare alcuni tipi di convertitori dopo aver ricevuto i dati o restituire i dati come stringa anziché come oggetti.
Ad esempio la classe
public class Person
{
public String Name { get; set; }
public int Age { get; set; }
public DateTime DOB { get; set; }
}
se restituito tramite uno System.Web.Services.WebMethod con [ScriptMethod (ResponseFormat = ResponseFormat.Json)] decorazione, la risposta sarà restituito come sotto del risultato. d
{Name:"Steve", Age:30, DOB:"/Date(1249335477787)/"};
E abbiamo bisogno di applicare del codice per convertire il DOB in formato ISO o qualche altro formato accettabile.
Ma sto solo cercando di capire se qualcuno ha eseguito una sorta di risposta modificando o utilizzando una classe sovrascritta per restituire i valori DateTime dai metodi web. C'è un modo per scavalcare le funzionalità di javascriptserializer e usarlo nei metodi asp .net web in modo che restituisca la data direttamente nel formato ISO? Sono consapevole che può essere fatto in asp .net MVC in vari modi.
È lo stesso che si può fare nei metodi web del modulo web asp .net? Ciò farebbe risparmiare molto codice e bug :)
è possibile scrivere il proprio serial json personalizzato utilizzando newtonsoft –
sì, ma come si dice al WebMethod di utilizzare questo nuovo serializzatore personalizzato per restituire l'oggetto. Non voglio restituirlo come una stringa :( – Muthu
ISO * è * il formato JSON. Stai utilizzando il (deprecato) JavaScriptSerializer forse? –