المطوّرون 🔒 يعمل داخل متصفحك — لا تُرسل أي بيانات

تحويل 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. وتتحول الكائنات المتداخلة إلى أنواع مستقلة بأسمائها، فتبدو النتيجة ككود كتبه مطوّر بيده.

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

طريقة الاستخدام

  1. الصق JSON في المربع الأيسر، أو اضغط مثال لترى عيّنة جاهزة.
  2. اختر لغة الإخراج.
  3. حدّد اسم النوع الجذر للنوع الأعلى؛ وفي TypeScript اختر interface أو type.
  4. انسخ النتيجة إلى مشروعك.

كيف تُستنتج الأنواع

  • الأرقام تصبح أعدادًا صحيحة إذا كانت كل القيم صحيحة، وأعدادًا عشرية (floating-point) في غير ذلك: فوجود 42 و18.5 في الحقل نفسه يعطي نوعًا عشريًا.
  • مصفوفات الكائنات تُدمج: فكل مفتاح يظهر في أي عنصر يظهر في النوع.
  • الحقول الاختيارية: حين يكون خيار جعل المفاتيح الناقصة اختيارية مفعّلًا، يصبح المفتاح الغائب عن بعض العناصر اختياريًا (coupon?: string، omitempty، Option، = None).
  • الحقول القابلة لـ null: القيمة التي تكون null في عنصر واحد تجعل الحقل قابلًا لـ null، مثل string | null، أو *string في Go.
  • الأنواع المختلطة، كرقم في عنصر ونص في آخر، تعطي unknown أو Any أو interface{}، لتقرر أنت النوع يدويًا.
  • الأسماء تُؤخذ من المفاتيح: address يعطي Address، وعناصر orders تعطي Order. والكائنات ذات الشكل الواحد تتشارك نوعًا واحدًا.

حسب كل لغة

لغة الإخراجما تحصل عليه
TypeScriptexport interface أو export type؛ والمفاتيح التي ليست أسماء صالحة توضع بين علامتي اقتباس
Gostructs مُصدَّرة مع وسوم 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>
Ruststructs تشتق 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.

أدلة ذات صلة