C# Programming

التسلسل المتسلسل الفعال لـ JSON في C#

Spread the love

JSON (JavaScript Object Notation) هو تنسيق خفيف الوزن لتبادل البيانات، ويُستخدم على نطاق واسع في تطبيقات الويب وواجهات برمجة التطبيقات. توفر C# عدة طرق لتحويل الكائنات إلى سلاسل JSON بكفاءة، مما يُبسط التواصل مع الأنظمة الأخرى ويُمكّن تخزين البيانات بطريقة قابلة للقراءة من قبل الإنسان. تستعرض هذه المقالة ثلاث طرق شائعة لهذا التحويل، مع مقارنة نقاط القوة والضعف لكل منها.

محتويات

تحويل الكائنات إلى JSON باستخدام JavaScriptSerializer

توفر فئة System.Web.Script.Serialization.JavaScriptSerializer نهجًا مباشرًا لتحويل JSON. ومع ذلك، فهي مكون قديم ويفتقر إلى ميزات وأداء المكتبات الأحدث. يوصى عمومًا باستخدام بدائل أحدث للمشاريع الجديدة.


using System;
using System.Web.Script.Serialization;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class Example
{
    public static void Main(string[] args)
    {
        Person person = new Person { Name = "John Doe", Age = 30 };

        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string jsonString = serializer.Serialize(person);

        Console.WriteLine(jsonString); // Output: {"Name":"John Doe","Age":30}
    }
}

ملاحظة: يتطلب مرجعًا إلى System.Web.Extensions (يُعثر عليه عادةً ضمن تجميعات .NET Framework). لا يُوصى به لنظام .NET Core والإصدارات الأحدث.

التسلسل JSON الفعال مع JsonConvert.SerializeObject

Newtonsoft.Json (يُشار إليه غالبًا باسم Json.NET) هي مكتبة JSON عالية الأداء تُستخدم على نطاق واسع لـ C#. توفر حلاً قويًا وغنيًا بالمميزات لتحويل JSON وتفكيكه. قم بتثبيت حزمة NuGet Newtonsoft.Json لاستخدام هذه الطريقة.


using Newtonsoft.Json;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class Example
{
    public static void Main(string[] args)
    {
        Person person = new Person { Name = "John Doe", Age = 30 };

        string jsonString = JsonConvert.SerializeObject(person);

        Console.WriteLine(jsonString); // Output: {"Name":"John Doe","Age":30}
    }
}

JsonConvert.SerializeObject موجزة وفعالة. توفر Newtonsoft.Json خيارات تخصيص واسعة النطاق للتعامل مع القيم الخالية، والتنسيق، والمزيد.

تحكم دقيق مع JObject.FromObject

كجزء من مكتبة Newtonsoft.Json أيضًا، توفر فئة JObject تحكمًا دقيقًا في بنية JSON قبل التحويل. هذا مفيد بشكل خاص عند معالجة تمثيل JSON قبل تحويله إلى سلسلة.


using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class Example
{
    public static void Main(string[] args)
    {
        Person person = new Person { Name = "John Doe", Age = 30 };

        JObject jsonObject = JObject.FromObject(person);
        string jsonString = jsonObject.ToString();

        Console.WriteLine(jsonString); // Output: {"Name":"John Doe","Age":30}
    }
}

على الرغم من تشابهها مع JsonConvert.SerializeObject للكائنات البسيطة، إلا أن JObject.FromObject توفر مرونة أكبر في السيناريوهات المعقدة. يمكنك بسهولة إضافة أو إزالة أو تعديل الخصائص داخل JObject قبل التحويل النهائي.

الخلاصة: بالنسبة لتطوير C# الحديث، يُوصى بشدة بطريقتي JsonConvert.SerializeObject و JObject.FromObject من Newtonsoft.Json نظرًا لأدائهما وميزاتهما ومرونتهما. تذكر تثبيت حزمة NuGet Newtonsoft.Json.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *