Beim Deserialisieren von JSON-Daten, die Datumsangaben enthalten, die als TT/MM/JJJJ formatiert sind, kann es sein, dass Json.Net versehentlich Daten im Format TT/MM/JJJJ verarbeitet Interpretieren Sie sie im Format MM/TT/JJJJ. Dies kann zu falschen Datumswerten in Ihren C#-Klassen führen.
Um dies zu beheben, stellt Json.Net den IsoDateTimeConverter bereit. Durch Angabe der DateTimeFormat-Eigenschaft können Sie Json.Net anweisen, Daten im gewünschten Format zu analysieren. Hier ist ein Beispiel:
MyObject obj = JsonConvert.DeserializeObject<MyObject>(jsonString, new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });
Mit dieser Konfiguration wird beispielsweise der 12.09.2013 korrekt als 9. Dezember 2013 und nicht als 12. September deserialisiert 2013.
Demonstration:
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; } }
Ausgabe:
day = 9 month = 12 year = 2013
Das obige ist der detaillierte Inhalt vonWie kann ich TT/MM/JJJJ-Daten mit Json.Net korrekt deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!