Je reçois une date JSON au format suivant :
"launch_date": 1250553600
Comment modifier les éléments suivants pour inclure un parsingur DateTime personnalisé qui me permet de convertir ce nombre en object DateTime
?
JsonConvert.DeserializeObject(json); public sealed class NTask { public DateTime launch_date { get; set; } }
Sinon, je pourrais utiliser long
, puis l’parsingr dans un autre champ, mais JsonConvert
plutôt de le faire, et JsonConvert
l’parsingr automatiquement à DateTime via un convertisseur.
Vous allez vouloir utiliser un convertisseur JSON pour vous aider à gérer la traduction. Voir cette réponse stackapps pour plus de détails.
Voici du code pour le faire:
// This is an example of a UNIX timestamp for the date/time 11-04-2005 09:25. double timestamp = 1113211532; // First make a System.DateTime equivalent to the UNIX Epoch. System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); // Add the number of seconds in UNIX timestamp to be converted. dateTime = dateTime.AddSeconds(timestamp);
Pour votre code:
JsonConvert.DeserializeObject(json); public sealed class NTask { public DateTime launch_date { get; set; } public void SetLaunchDate(int timestamp) { // First make a System.DateTime equivalent to the UNIX Epoch. var dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0); // Add the number of seconds in UNIX timestamp to be converted. launch_date = dateTime.AddSeconds(timestamp); } }
Ensuite, lorsque vous désérialisez le JSON, vérifiez si la valeur launch_date
est de type int
ou DateTime
et launch_date
la façon dont vous définissez l’object en fonction du type!