Apabila menyahsiri data JSON yang mengandungi tarikh yang diformatkan sebagai dd/MM/yyyy, Json.Net mungkin secara tidak sengaja tafsirkannya dalam format MM/dd/yyyy. Ini boleh membawa kepada nilai tarikh yang salah dalam kelas C# anda.
Untuk membetulkannya, Json.Net menyediakan IsoDateTimeConverter. Dengan menentukan sifat DateTimeFormatnya, anda boleh mengarahkan Json.Net untuk menghuraikan tarikh dalam format yang dikehendaki. Berikut ialah contoh:
MyObject obj = JsonConvert.DeserializeObject<MyObject>(jsonString, new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });
Sebagai contoh, dengan konfigurasi ini, 09/12/2013 akan dinyahsiri dengan betul pada 9 Disember 2013, bukannya 12 September 2013.
Demonstrasi:
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; } }
Output:
day = 9 month = 12 year = 2013
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahserialisasikan Tarikh dd/MM/yyyy dengan Json.Net dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!