محوّل JSON إلى فئات Python
الصق JSON واحصل على فئات Python فوراً — dataclass أو Pydantic v2 أو TypedDict. أنواع Optional صحيحة، وأسماء بديلة لمفاتيح camelCase، وفئات متداخلة. 100% في متصفّحك، ومجاني.
ما هو تحويل JSON إلى Python؟
يحوّل تحويل JSON إلى Python عيّنة JSON إلى فئات Python جاهزة للاستخدام — dataclass من المكتبة القياسية، أو نموذج Pydantic v2، أو TypedDict — فلا تكتب يدوياً تعريفات الحقول لاستجابة API أو ملف إعداد. يستنتج مولّد فئات Python هذا الأنواع الصحيحة (int وfloat وstr وbool وOptional)، ويحوّل الكائنات المتداخلة إلى فئات مسماة، ويضيف أسماء Pydantic البديلة لمفاتيح camelCase، كل ذلك 100% في متصفحك.
أمثلة
استجابة API إلى dataclass
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} from dataclasses import dataclass
from typing import List
@dataclass
class Root:
id: int
name: str
email: str
active: bool
roles: List[str]
تتحوّل حمولة REST نموذجية إلى @dataclass جاهزة للاستخدام. الأعداد الصحيحة تُستنتج int، والأعداد العشرية float، وتصبح المصفوفات List[str].
كائن متداخل (الفئة الابنة أولاً)
{"repo":"pydantic","owner":{"login":"samuelcolvin","id":100}} from dataclasses import dataclass
@dataclass
class Owner:
login: str
id: int
@dataclass
class Root:
repo: str
owner: Owner
تصبح الكائنات المتداخلة فئات منفصلة ومسماة. تُخرَج الفئة الابنة (Owner) قبل الأب كي يعمل الكود دون from __future__ import annotations.
مفاتيح camelCase إلى اسم Pydantic v2 بديل
{"login":"octocat","publicRepos":15,"createdAt":"2011-01-25"} from pydantic import BaseModel, ConfigDict, Field
class Root(BaseModel):
model_config = ConfigDict(populate_by_name=True)
login: str
public_repos: int = Field(alias="publicRepos")
created_at: str = Field(alias="createdAt")
في وضع Pydantic، تكون الحقول snake_case مع Field(alias=...) يعيد التعيين إلى مفتاح JSON الأصلي، ويتيح لك populate_by_name بناء النموذج بأي من الطريقتين — فيتحقّق فكّ تسلسل بيانات API الحقيقية ذهاباً وإياباً.
مصفوفة من الكائنات إلى TypedDict (مفتاح اختياري)
{"users":[{"id":1,"nick":"x"},{"id":2}]} from typing import List, Optional, TypedDict
class User(TypedDict):
id: int
nick: Optional[str]
class Root(TypedDict):
users: List[User]
تُدمج مصفوفات الكائنات في نوع عنصر واحد. المفتاح الغائب من بعض العناصر (nick) يصبح Optional. يصف TypedDict شكل dict عادي دون أي عبء وقت تشغيل.
كيفية تحويل JSON إلى Python
- 1
الصق بيانات JSON
أدرِج كائن JSON أو مصفوفة أو استجابة API في حقل الإدخال. يبدأ التحويل فوراً.
- 2
اختر dataclass أو Pydantic أو TypedDict
بدّل نمط الإخراج ليطابق مشروعك، وأعد تسمية الفئة الجذرية من الافتراضي Root.
- 3
انسخ أو حمّل
خذ Python المُولَّد بنقرة واحدة والصقه مباشرة في كودك.
Common Use Cases
- عملاء API مكتوبو الأنواع
- حوّل عيّنة استجابة REST أو GraphQL إلى نماذج Pydantic أو dataclass لعميل requests أو httpx دون كتابة تعريفات الحقول يدوياً.
- تحليل الإعدادات والتجهيزات
- ولّد نماذج لملفات إعداد JSON أو تجهيزات الاختبار أو حمولات webhook التي تحتاج إلى تحميلها والتحقق منها.
- النمذجة السريعة وتلميحات الأنواع
- الصق حمولة غير مألوفة لترى شكلها فوراً كأنواع Python — طريقة سريعة لاستكشاف API جديد أو إضافة تلميحات TypedDict إلى كود dict قديم.
كيف يعمل التحويل
- الاستنتاج البنيوي
- يصبح كل كائن فئة مسماة؛ وتُزال تكرارات الأشكال المتطابقة فتحصل على فئة واحدة لا نسخ. تُدمج مصفوفات الكائنات مفتاحاً بمفتاح، والمفاتيح الغائبة من بعض العناصر تصبح Optional.
- ثلاثة أهداف اصطلاحية
- يُبقي dataclass صفر اعتماديات ويحافظ على المفاتيح الصالحة لـRoot(**data)؛ ويضيف Pydantic v2 أسماء Field البديلة مع populate_by_name لتحقّق حقيقي؛ ويصف TypedDict dict عادياً لمدقّقات الأنواع الساكنة، مستخدماً الصيغة الوظيفية عندما لا يكون المفتاح معرّفاً.
- كتابة أنواع صحيحة وخفيفة الاعتماديات
- تُعيَّن الأعداد الصحيحة إلى int (دقة عشوائية بلا فيض)، والأعداد العشرية والأُسّية إلى float، والحقول الفارغة فقط إلى Optional[Any]. وتُضاف استيرادات typing (Optional وList وAny) فقط عند استخدامها فعلاً.
- 100% على جانب المتصفح
- يجري التحليل والتوليد في متصفحك دون أي طلبات شبكة، فتبقى بياناتك خاصة.
نصائح لنماذج Python نظيفة
- طابِق الوضع مع المهمة
- استخدم dataclass لحاويات البيانات الداخلية، وPydantic v2 عندما تتحقّق من إدخال غير موثوق أو تحلّله، وTypedDict عندما تحتاج فقط إلى تلميحات أنواع ساكنة فوق dict موجودة.
- الصق عيّنة تمثيلية
- تُعلَّم الحقول Optional فقط عندما تحذفها عيّنة، وتعود القيم الفارغة فقط إلى Any. المثال المكتمل المملوء يعطي أدق الأنواع.
- سمِّ فئتك الجذرية
- عيّن اسماً جذرياً ذا معنى (User أو ApiResponse) بدلاً من الافتراضي Root لكود مقروء وقابل للاستيراد.
الأسئلة الشائعة
كيف أحوّل JSON إلى فئة Python؟
ما الفرق بين إخراج dataclass وPydantic وTypedDict؟
كيف أولّد نموذج Pydantic من JSON؟
كيف يعالج إخراج dataclass مفاتيح camelCase؟
كيف تُكتب أنواع الحقول الاختيارية والفارغة؟
إلى أي نوع في Python تُعيَّن كل قيمة JSON؟
هل يعالج الكائنات المتداخلة ومصفوفات الكائنات؟
كيف تُعالَج الكلمات المفتاحية في Python والمفاتيح غير المعرّفات؟
كيف أستخدم الـdataclass المُولَّد لتحليل JSON؟
هل بيانات JSON الخاصة بي خاصة وآمنة؟
هل الأداة مجانية؟ وهل أحتاج إلى حساب؟
أدوات ذات صلة
عرض جميع الأدوات →محوّل Base64 — ترميز وفك ترميز أونلاين
الترميز والتنسيق
رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.
محوّل Base64 إلى صورة أونلاين
الترميز والتنسيق
فك ترميز سلسلة Base64 أو عنوان URI للبيانات إلى صورة داخل متصفّحك. عاين واقرأ الأبعاد ونوع MIME ثم نزّل كـ PNG أو JPG أو GIF أو SVG. بلا رفع.
محوّل CSV إلى JSON
الترميز والتنسيق
حوّل CSV إلى JSON في متصفحك. RFC 4180، استنتاج الأنواع، صف العنوان، أمان الأعداد الكبيرة. خصوصية 100%.
محوّل .env إلى JSON
الترميز والتنسيق
الصق ملف .env واحصل على JSON فورًا. كلمات مرور قاعدة بياناتك ومفاتيح API لا تغادر متصفحك أبدًا — خاص 100٪، بلا رفع، محلّل dotenv مجاني.
فكّ كيانات HTML المجانية — فكّ تهريب الرموز
الترميز والتنسيق
فُكّ كيانات HTML وفُكّ تهريب HTML أونلاين — مجانًا، بلا تسجيل، 100% داخل متصفحك. يحوّل المراجع بالاسم والعشرية والسداسية إلى أحرف؛ لا يُرفع أبدًا.
ترميز كيانات HTML المجانية — تهريب الرموز
الترميز والتنسيق
رمّز كيانات HTML وهرّب الأحرف الخاصة (< > & " ') أونلاين — مجانًا، بلا تسجيل، 100% داخل متصفحك. خرج بالاسم أو العشري أو السداسي عشري؛ لا يُرفع أبدًا.