Lors de la désérialisation de données JSON contenant des dates au format jj/MM/aaaa, Json.Net peut par inadvertance interprétez-les au format MM/jj/aaaa. Cela peut entraîner des valeurs de date incorrectes dans vos classes C#.
Pour remédier à cela, Json.Net fournit le IsoDateTimeConverter. En spécifiant sa propriété DateTimeFormat, vous pouvez demander à Json.Net d'analyser les dates dans le format souhaité. Voici un exemple :
MyObject obj = JsonConvert.DeserializeObject<MyObject>(jsonString, new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });
Par exemple, avec cette configuration, le 12/09/2013 sera correctement désérialisé comme le 9 décembre 2013, plutôt que le 12 septembre 2013.
Démonstration :
class Program { static void Main(string[] args) { string json = @"{ ""Date"" : ""09/12/2013"" }"; MyObject obj = JsonConvert.DeserializeObject<MyObject>(json, new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" }); DateTime date = obj.Date; Console.WriteLine("day = " + date.Day); Console.WriteLine("month = " + date.Month); Console.WriteLine("year = " + date.Year); } } class MyObject { public DateTime Date { get; set; } }
Sortie :
day = 9 month = 12 year = 2013
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!