JSON إلى Struct / Interface / Class

الصق JSON — احصل على تعريفات Go وTypeScript وPython وJava فوراً

→ العودة إلى أدوات التحويل
1
الصق JSON

أي كائن أو مصفوفة JSON

2
حدد اسم الجذر

الافتراضي: "Root"

3
انسخ للغتك

Go أو TS أو Python أو Java

الصق JSON وانقر على توليد لعرض الناتج

تعيين أنواع JSON — كيف تمثل كل لغة أنواع JSON

نوع JSONمثالGoTypeScriptPythonJava
string"hello"stringstringstrString
integer42intnumberintInteger
float3.14float64numberfloatDouble
booleantrueboolbooleanboolBoolean
nullnullinterface{}unknownAnyObject
array[1,2,3][]TT[]list[T]List<T>
object{"a":1}struct{...}interface{...}@dataclass classclass{...}

لماذا توليد الأنواع من JSON؟

تكامل واجهات API هو أكثر حالات الاستخدام شيوعاً: تتلقى استجابة JSON من REST API أو GraphQL وتحتاج نماذج محددة الأنواع بلغتك المفضلة. كتابة تعريفات struct يدوياً من استجابة JSON كبيرة عملية مملة وعرضة للأخطاء — قد يستغرق كائن JSON من 100 سطر أكثر من 30 دقيقة لكتابته يدوياً، وخطأ واحد في نوع الحقل يسبب أخطاء وقت التشغيل. ملفات الإعدادات (package.json، terraform.tfstate، docker-compose.yml) هي مصدر شائع آخر: يرغب المطورون في الوصول الآمن نوعياً إلى بيانات الإعدادات. خطوط أنابيب توليد الكود تستخدم أدوات JSON-to-type كخطوة أولى قبل توليد كود serialization أو مخططات قواعد البيانات أو توثيق API. هذه الأداة تولد جميع مخارج اللغات الأربع من إدخال JSON واحد — بدون تسجيل، بدون مفتاح API، نتائج فورية.

اصطلاحات كل لغة

Go: أسماء الحقول تستخدم PascalCase مع وسوم json:"field_name". الحقول النصية تستخدم string؛ الأعداد تفترض float64 ما لم تكن أعداداً صحيحة بوضوح. الكائنات المتداخلة تتحول إلى أنواع struct متداخلة. وسوم struct تحافظ على مفتاح JSON الأصلي للـ marshaling/unmarshaling.

TypeScript: الواجهات تستخدم PascalCase (مثال: Root، Address). الحقول الاختيارية (من القيم الفارغة null) تحصل على المعدل ?. المصفوفات تستخدم صيغة T[]. أنواع union تُولد للمصفوفات ذات أنواع العناصر المختلطة.

Python: تستخدم مزخرف @dataclass مع type hints. الحقول تحصل على Optional[T] للقيم القابلة أن تكون null. الكائنات المتداخلة تتحول إلى كلاسات dataclass متداخلة. تتضمن الاستيرادات from dataclasses import dataclass وfrom typing import List, Optional.

Java: تولد كلاسات POJO (Plain Old Java Object) بحقول private ودوال getter/setter عامة ومجموعات generic صحيحة. تستخدم List<T> للمصفوفات، وInteger/Double/Boolean كمغلفات للأنواع الأولية القابلة للـ null.

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

كيف أحول JSON إلى Go struct؟

الصق JSON وانتقل إلى تبويب Go. تولد الأداة Go struct صحيحة مع وسوم json:"..." وأنواع struct متداخلة وأنواع slice للمصفوفات. تستخدم الحقول PascalCase مع الحفاظ على مفتاح JSON الأصلي في وسوم struct.

كيف أولد TypeScript interfaces من JSON؟

اختر تبويب TypeScript بعد لصق JSON. تُولد الواجهات بمعدلات اختيارية للحقول القابلة أن تكون null، وأنواع المصفوفات باستخدام T[]، وواجهات متداخلة للكائنات المتداخلة.

هل يمكن توليد Python dataclass أو Java class من JSON؟

نعم — جميع اللغات الأربع تُولد في آنٍ واحد. Python: @dataclass مع type hints وOptional/List من typing. Java: POJO بحقول private ودوال getter/setter ومجموعات generic. تنقل بين التبويبات لمشاهدة كل لغة.

كيف يعمل استدلال الأنواع؟

تُعيّن قيم JSON كالتالي: string → string/str/String، integer → int/number/int/Integer، float → float64/number/float/Double، boolean → bool/boolean/bool/Boolean، null → interface{}/unknown/Any/Object، array → مجموعات محددة الأنواع، object → أنواع متداخلة. راجع جدول تعيين الأنواع أعلاه.

ماذا عن الحقول الاختيارية والقيم الفارغة (null)؟

تولد قيم JSON الفارغة (null) أنواعاً اختيارية/مؤشرية: *T أو interface{} في Go، المعدل ? في TypeScript، Optional[T] في Python، مغلفات قابلة للـ null في Java. الحقول المفقودة من بعض عناصر المصفوفات تُعامل كحقول اختيارية في جميع المخرجات.