Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencegah DateTime Deserialization Apabila Menggunakan Json.NET's JObject.Parse?

Bagaimana untuk Mencegah DateTime Deserialization Apabila Menggunakan Json.NET's JObject.Parse?

DDD
Lepaskan: 2025-01-03 08:11:39
asal
968 orang telah melayarinya

How to Prevent DateTime Deserialization When Using Json.NET's JObject.Parse?

Melumpuhkan Deserialisasi DateTime dalam Kaedah JObject.Parse Json.NET

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"
}
Salin selepas log masuk

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.

Mencegah Penyahserikatan Tarikh

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);
}
Salin selepas log masuk

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.

Kesimpulan

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan