البرمجة

تنسيق تواريخ C# في JSON

عند التعامل مع تسلسل الأشياء إلى JSON في لغة البرمجة C#، يمكن أن تكون التواريخ (DateTime) مصدرًا للتحديات. عندما تقوم بتسلسل كائن (object) يحتوي على خصائص تاريخ، فإن سلسلة JSON الناتجة لن تكون بالصيغة التي تتوقعها، وذلك لأن JSON لا يدعم بشكل مباشر تمثيل التواريخ كمتغيرات تاريخية، بل يمكنه فقط التعامل مع السلاسل والأرقام والقيم البولية.

لكن لدينا خيارات للتعامل مع هذه المشكلة. يمكننا استخدام مكتبة Newtonsoft.Json المعروفة للتعامل مع التواريخ بطريقة تتيح لنا تخصيص التسلسل. فيما يلي خطوات بسيطة لتحقيق ذلك:

أولاً، يجب أن نعلم Newtonsoft.Json بكيفية التعامل مع التواريخ. يمكننا فعل ذلك عن طريق تخصيص كيفية تسلسل الخصائص التي تحتوي على تواريخ. يمكننا استخدام السمة (attribute) JsonConverter لتحقيق هذا الأمر. لنفترض أن لدينا خصائص DateTime في كائننا model، نحن بحاجة إلى تعيين JsonConverter لكل خاصية DateTime. يمكن أن نكتب كلاس مخصص لتحويل التواريخ إلى الصيغة التي نريدها.

فلنقم بإنشاء كلاس يسمى CustomDateTimeConverter وينفذ JsonConverter:

csharp
using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; public class CustomDateTimeConverter : IsoDateTimeConverter { public CustomDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd hh:mm tt"; } }

ثم، يمكننا تطبيق هذا المحول المخصص إلى كائن model عن طريق تسمية الخاصية DateTime بالسمة JsonConverter:

csharp
public class Model { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime DateProperty { get; set; } }

الآن، عند استدعاء Json(model)، سترى أن السلسلة المنتجة تحتوي على التواريخ بالصيغة المحددة في CustomDateTimeConverter والتي هي “yyyy-MM-dd hh:mm tt”.

وبهذا، يمكنك الآن تسلسل التواريخ في C# إلى JSON بالصيغة التي تريدها. يُعتبر هذا الحل فعالًا وقابلاً للتوسيع، مما يسمح لك بالتعامل بسهولة مع التواريخ في تطبيقاتك بلغة C# وتسلسلها بشكل صحيح في JSON.

المزيد من المعلومات

بالطبع، سأواصل المقال لتوفير مزيد من التفاصيل والمعلومات للقراء.

عند استخدام مكتبة Newtonsoft.Json، يمكننا تخصيص تسلسل البيانات بطرق أخرى أيضًا. على سبيل المثال، إذا أردنا تنسيق تاريخ معين في جميع أنحاء التطبيق، يمكننا تعيين التنسيق الافتراضي للتواريخ باستخدام تكوينات الـJsonSerializerSettings.

دعنا نوضح هذا الأمر بمثال عملي:

csharp
using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; class Program { static void Main(string[] args) { // تعيين التنسيق الافتراضي للتواريخ var settings = new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd hh:mm tt" }; // إنشاء كائن من النوع Model var model = new Model { DateProperty = DateTime.Now }; // تسلسل الكائن إلى JSON باستخدام التنسيق الجديد var json = JsonConvert.SerializeObject(model, settings); // عرض النتيجة Console.WriteLine(json); } } public class Model { public DateTime DateProperty { get; set; } }

في هذا المثال، قمنا بتعيين DateFormatString في JsonSerializerSettings ليكون تاريخًا بالصيغة المطلوبة “yyyy-MM-dd hh:mm tt”. ثم قمنا بتسلسل كائن model إلى JSON باستخدام هذا التنسيق الجديد.

وبهذا، يمكن للمطورين تعيين التنسيق الافتراضي للتواريخ في جميع أنحاء التطبيق، مما يسهل عملية التسلسل إلى JSON بالطريقة المطلوبة دون الحاجة إلى تخصيص JsonConverter لكل خاصية DateTime على حدة.

يُظهر هذا المثال كيف يمكن لمكتبة Newtonsoft.Json توفير مرونة كبيرة في تخصيص عمليات التسلسل والتي تسهل على المطورين التعامل مع تنسيقات البيانات بشكل مرن وفعّال.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر