Dalam konteks pengendalian data JSON, Json.NET ialah perpustakaan yang sangat diperlukan untuk menghurai dan menyahsiri objek data . Satu isu biasa yang dihadapi semasa menghuraikan rentetan JSON ialah penyahserialisasian automatik nilai DateTime. Dalam senario tertentu, adalah wajar untuk menghalang penyahserikatan ini dan mendapatkan semula perwakilan rentetan mentah.
Untuk menggambarkan isu ini, pertimbangkan rentetan JSON berikut:
{ "time": "2012-08-08T01:54:45.3042880+00:00" }
Jika kami menggunakan Json Kaedah JObject.Parse .NET untuk menghuraikan rentetan ini, sifat masa akan dinyahsiri secara automatik menjadi objek DateTime. Tingkah laku ini boleh menjadi masalah dalam kes di mana perwakilan rentetan mentah diperlukan untuk pemprosesan selanjutnya.
Untuk melumpuhkan penukaran automatik tarikh dalam JObject.Parse, kami boleh menggunakan JsonReader .DateParseHandling property. Sifat ini membolehkan kami menentukan cara tarikh harus dikendalikan semasa proses penghuraian. Dengan menetapkannya kepada DateParseHandling.None, kami boleh mengarahkan Json.NET untuk merawat tarikh sebagai rentetan dan tidak cuba menukarnya menjadi objek DateTime.
Kod berikut menunjukkan cara untuk mencapai ini:
using(JsonReader reader = new JsonTextReader(new StringReader(jsonString))) { reader.DateParseHandling = DateParseHandling.None; JObject o = JObject.Load(reader); }
Dalam kod ini, kami mula-mula mencipta objek JsonReader menggunakan rentetan JSON yang disediakan. Kemudian, kami menetapkan sifat DateParseHandling kepada DateParseHandling.Tiada sebelum memuatkan data JSON ke dalam JObject. Akibatnya, sifat masa akan dihuraikan sebagai rentetan mentah dan boleh diakses dengan sewajarnya.
Dengan menggunakan sifat JsonReader.DateParseHandling, kami boleh melumpuhkan penyahserialisasian tarikh dengan berkesan dalam Kaedah JObject.Parse Json.NET. Ini membolehkan kami mendapatkan semula perwakilan rentetan mentah tarikh, memberikan kawalan yang lebih besar ke atas pengendalian dan pemprosesan data dalam pelbagai senario.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah DateTime Deserialization Apabila Menggunakan Json.NET's JObject.Parse?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!