UTILS.
‎100%‎ داخل المتصفح
💠

من JSON إلى أصناف C#

أنشئ أصناف نموذج C# من عيّنة JSON لـ System.Text.Json أو Newtonsoft.Json، مع خصائص PascalCase وأنواع قيمة قابلة لأن تكون null.

المخرج

حول هذه الأداة

تحوّل أداة من JSON إلى أصناف C# عيّنة JSON ملصوقة إلى أصناف أو سجلات نموذج C#، بحيث يستطيع مطوّرو ‎.NET‎ إنشاء DTOs من استجابة API في ثوانٍ. تحلّل JSON، وتستنتج أنواع C# بشكل تكراري، وتصدر نوعًا واحدًا لكل كائن: تصبح السلاسل string، وسلاسل التاريخ والوقت بصيغة ISO تصبح DateTime، والأعداد الصحيحة int أو long، والأرقام الأخرى double، والقيم المنطقية bool، والمصفوفات List<T>، والكائنات المتداخلة أصناف PascalCase خاصة بها تُصرَّح قبل الآباء الذين يشيرون إليها.

كل التحليل وتوليد الشيفرة يحدث محليًا في متصفحك باستخدام JSON.parse وجافاسكريبت عادية — لا يُرفَع شيء. تُصدَر الخصائص كخصائص تلقائية بأسلوب PascalCase، public T Prop { get; set; }. عندما يختلف مفتاح JSON عن اسم خاصية PascalCase تضيف الأداة [JsonPropertyName("originalKey")] لـ System.Text.Json أو [JsonProperty("originalKey")] لـ Newtonsoft، ولا تُضمَّن سوى توجيهات using المطلوبة.

خصائص نوع القيمة التي يمكن أن تكون null في أي عيّنة تُجعَل قابلة لأن تكون null (int?, double?, bool?, DateTime?)، بينما الأنواع المرجعية مثل string وList قابلة أصلًا لأن تكون null. يبدّل مفتاح المُسَلسِل نمط السمة وusing بين System.Text.Json (الافتراضي) وNewtonsoft.Json؛ ويُصدِر مفتاح الشكل إما أصنافًا (الافتراضي) أو سجلات. انسخ الشيفرة أو نزّلها كملف .cs.

الأسئلة الشائعة

كيف تُطابَق أنواع JSON مع C#؟
string إلى string، وتاريخ ووقت ISO إلى DateTime، وعدد صحيح إلى int (long خارج نطاق int)، ورقم غير صحيح إلى double، وقيمة منطقية إلى bool، ومصفوفة إلى List<T>، وكائن إلى صنف أو سجل مسمّى. أنواع القيمة القابلة لأن تكون null تحصل على مُعدِّل ? اللاحق.
System.Text.Json أم Newtonsoft؟
يختار مفتاح المُسَلسِل أيًّا منهما. يتحكّم في السمة المُستخدَمة عندما يختلف اسم خاصية عن مفتاح JSON — [JsonPropertyName("key")] لـ System.Text.Json أو [JsonProperty("key")] لـ Newtonsoft — وتوجيه using المقابل.
هل يمكنني توليد سجلات بدلًا من الأصناف؟
نعم. يبدّل مفتاح الشكل بين public class (الافتراضي) وpublic record، مع الإبقاء على الخصائص التلقائية PascalCase نفسها وسمات JSON بحيث تختار النمط الذي تفضّله قاعدة شيفرتك.
هل تُعالَج JSON بشكل خاص؟
نعم. كل شيء يعمل في متصفحك باستخدام JSON.parse وجافاسكريبت عادية؛ لا تُرفَع العيّنة أبدًا، لذا فإن لصق حمولات API حقيقية آمن.

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