Analyser le format de date personnalisé à l’aide de JSON.Net

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!