البرمجة

تحويل JSON إلى كائنات C#

لحل هذه المشكلة، يمكنك إنشاء كلاسات تمثل الهيكل الذي تريد تحويل ال JSON إليه. يبدو أن ال JSON الذي تحتاج إلى تحليله يحتوي على كائنات متداخلة، لذا ستحتاج إلى استخدام كلاسات متداخلة أيضًا. هناك أداة تسمى json2csharp يمكنك استخدامها لتوليد الكود المناسب لكلاسات C# من ال JSON.

لنفترض أن ال JSON الذي تحتاج إلى تحليله هو:

json
{ "success": true, "rgInventory": { "1533133768": { "id": "1533133768", "classid": "150853436", "instanceid": "188540556", "amount": "1", "pos": 1 }, "1533133769": { "id": "1533133769", "classid": "150853437", "instanceid": "188540557", "amount": "1", "pos": 2 } }, "rgDescriptions": { "150853436_188540556": { "appid": "730", "classid": "150853436", "instanceid": "188540556", "icon_url": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpouLWzKjhzw8zFdC5K092kl5SClMj3PLXFhGpC_Pp8j-3I4IG7i1Hn_UI-Nmj3ItDGe1BoN1mCr1G4xL_vhMS8tcmcn3JhuihwsHvbzQv3309k3tBw8A", "icon_url_large": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpouLWzKjhzw8zFdC5K092kl5SClMj3PLXFhGpC_Pp8j-3I4IG7i1Hn_UI-Nmj3ItDGe1BoN1mCr1G4xL_vhMS8tcmcn3JhuihwsHvbzQv3309k3tBw8A" }, "150853437_188540557": { "appid": "730", "classid": "150853437", "instanceid": "188540557", "icon_url": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpouLWzKjhzw8zFdC5K092kl5SClMj3PLXFhGpC_Pp8j-3I4IG7i1Hn_UI-Nmj3ItDGe1BoN1mCr1G4xL_vhMS8tcmcn3JhuihwsHvbzQv3309k3tBw8A", "icon_url_large": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpouLWzKjhzw8zFdC5K092kl5SClMj3PLXFhGpC_Pp8j-3I4IG7i1Hn_UI-Nmj3ItDGe1BoN1mCr1G4xL_vhMS8tcmcn3JhuihwsHvbzQv3309k3tBw8A" } } }

يمكنك تحويل هذا ال JSON إلى الكلاسات التالية:

csharp
public class RgInventory { public Item 1533133768 { get; set; } public Item 1533133769 { get; set; } } public class Item { public string id { get; set; } public string classid { get; set; } public string instanceid { get; set; } public string amount { get; set; } public int pos { get; set; } } public class RgDescriptions { public Description 150853436_188540556 { get; set; } public Description 150853437_188540557 { get; set; } } public class Description { public string appid { get; set; } public string classid { get; set; } public string instanceid { get; set; } public string icon_url { get; set; } public string icon_url_large { get; set; } } public class RootObject { public bool success { get; set; } public RgInventory rgInventory { get; set; } public RgDescriptions rgDescriptions { get; set; } }

ثم يمكنك استخدام مكتبة Newtonsoft.Json لتحويل ال JSON إلى كائن C# باستخدام الكود التالي:

csharp
string json = ...; // ال JSON الخاص بك هنا RootObject root = JsonConvert.DeserializeObject(json);

بعد ذلك، يمكنك الوصول إلى القيم داخل الكائن root للحصول على قيم الكائنات في ال JSON.

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

بالطبع! يمكننا إضافة بعض المعلومات الإضافية حول كيفية استخدام مكتبة Newtonsoft.Json لتحويل ال JSON إلى كائن C# واستخدام القيم في تطبيقك:

  1. تحويل ال JSON إلى كائن C#: استخدم الدالة JsonConvert.DeserializeObject() لتحويل ال JSON إلى كائن C#. يجب تحديد النوع الذي تريد تحويل ال JSON إليه بين قوسين زاويين <>. على سبيل المثال:

    csharp
    RootObject root = JsonConvert.DeserializeObject(json);
  2. الوصول إلى القيم في الكائن C#: بعد تحويل ال JSON إلى كائن C#، يمكنك الوصول إلى القيم داخل الكائن باستخدام البيانات النمطية. على سبيل المثال، إذا أردت الوصول إلى قيمة icon_url في الكائن Description، يمكنك استخدام الكود التالي:

    csharp
    string iconUrl = root.rgDescriptions.150853436_188540556.icon_url;
  3. التعامل مع الكائنات المتداخلة: في حال كان لديك كائنات متداخلة في ال JSON، يمكنك بسهولة الوصول إليها عن طريق تتبع الهيكل الذي تم تحديده في كلاساتك. على سبيل المثال، إذا كان لديك كائن rgInventory يحتوي على عدة كائنات فرعية، يمكنك الوصول إلى أحد الكائنات الفرعية بالشكل التالي:

    csharp
    Item item = root.rgInventory.1533133768;
  4. التعامل مع JSON متغير: إذا كنت تتعامل مع JSON متغير ولا تعرف بالضبط الهيكل الدقيق له، يمكنك استخدام كائن JObject من Newtonsoft.Json للوصول إلى القيم بشكل ديناميكي. على سبيل المثال:

    csharp
    JObject jsonObject = JObject.Parse(json); string iconUrl = (string)jsonObject["rgDescriptions"]["150853436_188540556"]["icon_url"];

    في هذا المثال، يتم الوصول إلى قيمة icon_url في الكائن Description دون الحاجة إلى تحديد هيكل الكائنات مسبقًا في كلاس C#.

هذه بعض الطرق التي يمكنك استخدامها لتحويل واستخدام ال JSON في تطبيقك باستخدام مكتبة Newtonsoft.Json في C#.

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

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

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!