logo

تحليل JSON في C#

مقدمة:

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

يمكن تحقيق تحليل JSON في C# بطرق مختلفة: باستخدام مكتبة Newtonsoft.Json أو باستخدام مكتبة System.Text.Json قدم في نت كور 3.0 . تعد كلتا المكتبتين من الخيارات الشائعة لـ JSON Parsing في C# وتوفران وظائف مماثلة.

الطريقة الأولى: استخدام حزمة Newtonsoft.Json

إحدى الحزم الأكثر شيوعًا لـ Parsing JSON في C# هي نيوتنسوفت.Json . إنها حزمة تابعة لجهة خارجية توفر طريقة بسيطة ومرنة لإجراء تسلسل وإلغاء تسلسل بيانات JSON.

ليستخدم نيوتنسوفت.Json في مشروع C# الخاص بك، تحتاج إلى تثبيته أولاً. يمكنك تثبيته عبر نوجيت مدير الحزم في استوديو مرئي أو عن طريق تشغيل الأمر التالي في وحدة تحكم إدارة الحزم:

قائمة انتظار الأولوية ج ++

شفرة:

 Install-Package Newtonsoft.Json 

بمجرد التثبيت، يمكنك البدء في استخدامه في التعليمات البرمجية الخاصة بك. فيما يلي مثال لكيفية تحليل JSON باستخدام نيوتنسوفت.Json:

كود سي#:

 using Newtonsoft.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; dynamic data = JsonConvert.DeserializeObject(json); string name = data.name; int age = data.age; string city = data.city; Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

في هذا المثال، نحدد سلسلة JSON ونقوم بإلغاء تسلسلها باستخدام التابع JsonConvert.DeserializeObject الطريقة المقدمة من نيوتنسوفت.Json . تُرجع الطريقة كائنًا ديناميكيًا، مما يسمح لنا بالوصول إلى بيانات JSON باستخدام صيغة الخاصية.

العشاء مقابل وقت العشاء

الطريقة الثانية: استخدام مساحة الاسم System.Text.Json

بدءا من نت كور 3.0 و نت 5.0، يوفر C# أيضًا مكتبة JSON Parsing مدمجة تسمى System.Text.Json . إنه برنامج تسلسل وإلغاء تسلسل JSON خفيف الوزن وسريع يتم تضمينه في ملف .شبكة مدة العرض.

فيما يلي مثال لكيفية تحليل JSON باستخدام System.Text.Json:

كود سي#:

 using System.Text.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; JsonDocument doc = JsonDocument.Parse(json); JsonElement root = doc.RootElement; string name = root.GetProperty('name').GetString(); int age = root.GetProperty('age').GetInt32(); string city = root.GetProperty('city').GetString(); Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

في هذا المثال نستخدم JsonDocument.Parse الطريقة المقدمة من System.Text.Json لتحليل سلسلة JSON. ترجع الطريقة أ JsonDocument الكائن الذي يمثل بيانات JSON التي تم تحليلها. يمكننا بعد ذلك الوصول إلى بيانات JSON باستخدام ملف JsonElement الطبقة و GetProperty طريقة.

الطريقة الثالثة: استخدام فئة JavaScriptSerializer

هناك طريقة أخرى لتحليل JSON في C# وهي باستخدام JavaScriptSerializer الطبقة، والتي هي جزء من System.Web.Extensions حَشد. تم تقديم هذا الفصل في . صافي الإطار 3.5 ويوفر طريقة بسيطة لإلغاء تسلسل بيانات JSON وتحويلها إلى كائن مكتوب بقوة.

لاستخدام ال JavaScriptSerializer فئة، تحتاج إلى إنشاء فئة تمثل كائن JSON الذي تريد إلغاء تسلسله. يجب أن تحتوي الفئة على خصائص تطابق أسماء وأنواع بيانات خصائص كائن JSON. على سبيل المثال، افترض أن لديك كائن JSON أدناه:

كائن جسون:

سلسلة استبدال كل جافا
 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

يمكنك إنشاء فئة تمثل هذا الكائن على النحو التالي:

كود سي#:

لينكس الذي
 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

بمجرد تحديد الفئة، يمكنك استخدام JavaScriptSerializer فئة لإلغاء تسلسل بيانات JSON في مثيل لفئة الشخص:

كود سي#:

 string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json); 

في المثال أعلاه، قمنا أولاً بتعريف سلسلة تحتوي على بيانات JSON. ثم قمنا بإنشاء مثيل لـ JavaScriptSerializer فئة واستخدمت طريقة إلغاء التسلسل لتحليل بيانات JSON إلى مثيل لفئة الشخص.

ومن الجدير بالذكر أن JavaScriptSerializer الفصل له قيود مقارنة بالطريقتين الأخريين اللتين ناقشناهما. على سبيل المثال، لا يدعم بعض الميزات الأكثر تقدمًا لـ JSON، مثل التعامل مع القيم الخالية أو التحويل بين اصطلاحات التسمية CamelCase وPascalCase. كما أنه لا يحتوي على دعم مدمج لإلغاء تسلسل صفائف JSON.

خاتمة:

في هذه المقالة، اكتشفنا طريقتين لتحليل JSON في لغة C#: استخدام نيوتنسوفت.Json المكتبة واستخدام System.Text.Json مكتبة. توفر كلتا المكتبتين إمكانات تحليل JSON قوية ويتم استخدامها على نطاق واسع من قبل المطورين الذين ينشئون تطبيقات C# التي تستهلك بيانات JSON.