تحويل JSON إلى أنواع
حوّل عيّنة JSON إلى واجهات TypeScript أو structs لـ Go أو نماذج Python أو أصناف C# أو structs لـ Rust أو JSON Schema.
تحويل JSON إلى أنواع - TypeScript وGo وPython وC# وRust وJSON Schema
الصق عيّنة JSON، كاستجابة من واجهة برمجية (API)، واحصل على تعريفات الأنواع المقابلة لها: واجهات TypeScript، أو structs لـ Go مع وسوم JSON، أو نماذج Pydantic أو dataclasses، أو أصناف C#، أو structs لـ Rust تعمل مع serde، أو JSON Schema. وتتحول الكائنات المتداخلة إلى أنواع مستقلة بأسمائها، فتبدو النتيجة ككود كتبه مطوّر بيده.
كثيرًا ما تحمل استجابات الواجهات البرمجية بيانات عملاء حقيقية ورموز وصول ومعرّفات داخلية. ويجري التحويل بالكامل داخل متصفحك، فلا يُرسل شيء من ذلك إلى أي مكان.
طريقة الاستخدام
- الصق JSON في المربع الأيسر، أو اضغط مثال لترى عيّنة جاهزة.
- اختر لغة الإخراج.
- حدّد اسم النوع الجذر للنوع الأعلى؛ وفي TypeScript اختر
interfaceأوtype. - انسخ النتيجة إلى مشروعك.
كيف تُستنتج الأنواع
- الأرقام تصبح أعدادًا صحيحة إذا كانت كل القيم صحيحة، وأعدادًا عشرية (floating-point) في غير ذلك: فوجود
42و18.5في الحقل نفسه يعطي نوعًا عشريًا. - مصفوفات الكائنات تُدمج: فكل مفتاح يظهر في أي عنصر يظهر في النوع.
- الحقول الاختيارية: حين يكون خيار جعل المفاتيح الناقصة اختيارية مفعّلًا، يصبح المفتاح الغائب عن بعض العناصر اختياريًا (
coupon?: string،omitempty،Option،= None). - الحقول القابلة لـ null: القيمة التي تكون
nullفي عنصر واحد تجعل الحقل قابلًا لـ null، مثلstring | null، أو*stringفي Go. - الأنواع المختلطة، كرقم في عنصر ونص في آخر، تعطي
unknownأوAnyأوinterface{}، لتقرر أنت النوع يدويًا. - الأسماء تُؤخذ من المفاتيح:
addressيعطيAddress، وعناصرordersتعطيOrder. والكائنات ذات الشكل الواحد تتشارك نوعًا واحدًا.
حسب كل لغة
| لغة الإخراج | ما تحصل عليه |
|---|---|
| TypeScript | export interface أو export type؛ والمفاتيح التي ليست أسماء صالحة توضع بين علامتي اقتباس |
| Go | structs مُصدَّرة مع وسوم json، والنوعان int64 وfloat64، والاختصارات الشائعة بحروف كبيرة مثل ID وURL |
| Python (Pydantic) | أصناف BaseModel؛ وحقول بصيغة snake_case مع Field(alias=...) حين يختلف مفتاح JSON |
| Python (dataclass) | أصناف @dataclass، مع وضع الحقول الاختيارية في النهاية كما تشترط dataclasses |
| C# | أصناف مع [JsonPropertyName] لمكتبة System.Text.Json، والأنواع long وdouble وList<T> |
| Rust | structs تشتق Serialize وDeserialize، مع #[serde(rename)] حيث يلزم |
| JSON Schema | مخطط وفق مسودة 2020-12 مع قوائم required، جاهز لأدوات التحقق |
للحصول على أدق الأنواع
النوع كامل بقدر اكتمال العيّنة التي جاء منها فقط. استخدم استجابة تتضمن كل حقل اختياري مرة واحدة على الأقل، والصق مصفوفة فيها عدة عناصر مختلفة بدل عنصر واحد، ليرى الدمج أي الحقول تتغير. أما التواريخ فتصل في JSON نصوصًا وتبقى نصوصًا؛ فحوّلها في كودك حيث تحتاج إلى أنواع تاريخ حقيقية.
أدوات ذات صلة
لترتيب JSON أو التحقق من صحته أولًا، استخدم منسّق JSON. ولتحويله إلى YAML أو CSV أو XML، استخدم محوّل JSON. وتفتح صفحات المهام هذه الأداة مع لغة مختارة مسبقًا: تحويل JSON إلى TypeScript وتحويل JSON إلى Go وتحويل JSON إلى Python وتحويل JSON إلى C# ومولد JSON Schema.