Skip to content

محوّل JSON إلى فئات Python

الصق JSON واحصل على فئات Python فوراً — dataclass أو Pydantic v2 أو TypedDict. أنواع Optional صحيحة، وأسماء بديلة لمفاتيح camelCase، وفئات متداخلة. 100% في متصفّحك، ومجاني.

بدون تتبّع يعمل في المتصفّح مجاني
الإخراج
0 حرف
إخراج <bdi>Python</bdi>
0 سطر
تم التحقق من الإخراج مقابل صيغة Python 3.12+ ودلالات Pydantic v2 لحمولات API واقعية. — Go Tools Team · Jul 3, 2026

ما هو تحويل 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. 1

    الصق بيانات JSON

    أدرِج كائن JSON أو مصفوفة أو استجابة API في حقل الإدخال. يبدأ التحويل فوراً.

  2. 2

    اختر dataclass أو Pydantic أو TypedDict

    بدّل نمط الإخراج ليطابق مشروعك، وأعد تسمية الفئة الجذرية من الافتراضي Root.

  3. 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؟
الصق بيانات JSON في حقل الإدخال. يحلّلها المحوّل فوراً في متصفحك ويولّد Python على اليمين. اختر dataclass أو Pydantic v2 أو TypedDict من المبدّل، ثم انقر على «انسخ» — بلا رفع ولا حساب ولا انتظار.
ما الفرق بين إخراج dataclass وPydantic وTypedDict؟
يعطيك dataclass فئة @dataclass من المكتبة القياسية بلا اعتماديات — مثالية لحاويات البيانات البسيطة. يُخرِج Pydantic v2 فئات BaseModel تتحقّق من البيانات وتحوّل أنواعها وقت التشغيل، وهي مثالية لتحليل استجابات API غير الموثوقة. يصف TypedDict شكل dict عادي لمدقّقات الأنواع الساكنة (mypy وPyright) دون أي كلفة وقت تشغيل. بدّل الأوضاع لمقارنة نفس JSON في كل منها.
كيف أولّد نموذج Pydantic من JSON؟
اختر تبويب Pydantic v2. تُحوَّل الحقول إلى snake_case مع Field(alias="originalKey") كي يظل النموذج يقرأ JSON بصيغة camelCase، ويتيح لك model_config = ConfigDict(populate_by_name=True) بناءه بأسماء الحقول أيضاً. حلّل حمولة بـRoot.model_validate(data) — يتحقّق Pydantic من الأنواع ويرفع خطأً واضحاً عند الإدخال السيئ.
كيف يعالج إخراج dataclass مفاتيح camelCase؟
لا يملك dataclass اسماً بديلاً مدمجاً، لذا وللحفاظ على عمل Root(**data)، يُبقي وضع dataclass المفتاح الأصلي اسماً للحقل ما دام معرّفاً صالحاً في Python (يبقى publicRepos كما هو). إن أردت snake_case اصطلاحية مع أسماء بديلة، فاستخدم وضع Pydantic v2 بدلاً منه، إذ يعيد تعيين حقول snake_case إلى مفتاح JSON بالضبط.
كيف تُكتب أنواع الحقول الاختيارية والفارغة؟
عندما يظهر مفتاح في بعض عناصر المصفوفة دون غيرها، يُغلَّف نوعه بـOptional. والحقل الذي يكون دائماً null فقط يصبح Optional[Any]، لأن null في JSON وحده لا يحمل أي نوع. الصق عيّنة تمثيلية بقيمة مملوءة للحصول على نوع أدق من Any.
إلى أي نوع في Python تُعيَّن كل قيمة JSON؟
تُعيَّن السلاسل إلى str، والقيم المنطقية إلى bool، والأعداد الصحيحة إلى int، وأي رقم بفاصلة عشرية أو أُس إلى float. ولأن أعداد Python الصحيحة ذات دقة عشوائية، تبقى حتى المعرّفات الضخمة int — بلا أي فيض على 64 بت. وتصبح المصفوفات الفارغة أو المختلطة الأنواع List[Any]، وتصبح الكائنات فئات متداخلة.
هل يعالج الكائنات المتداخلة ومصفوفات الكائنات؟
نعم. يصبح كل كائن متداخل فئة مسماة خاصة به، وتُزال تكرارات الأشكال المتطابقة في فئة واحدة يعيد استخدامها كل حقل. تُدمج مصفوفات الكائنات مفتاحاً بمفتاح فتحصل على فئة عنصر واحدة، مع تعليم المفاتيح الغائبة من بعض العناصر بـOptional. وتُخرَج الفئات الابنة دائماً قبل الفئات التي تستخدمها.
كيف تُعالَج الكلمات المفتاحية في Python والمفاتيح غير المعرّفات؟
أي مفتاح JSON هو كلمة مفتاحية في Python (class أو from أو import) يحصل على شرطة سفلية لاحقة (class_). وتُنظَّف المفاتيح ذات الشرطات أو المسافات أو الرقم في البداية إلى معرّفات صالحة في وضعَي dataclass وPydantic. وفي وضع TypedDict، يُخرَج أي dict يحتوي مفتاحاً غير معرّف بصيغة TypedDict('Name', {...}) الوظيفية كي يُحفَظ المفتاح بالضبط مثل "first-name".
كيف أستخدم الـdataclass المُولَّد لتحليل JSON؟
لكائن مسطّح، يعمل json.loads ثم Root(**data) مباشرة. أما البنى المتداخلة، فلا يتعمّق فيها dataclass تلقائياً — إما أن تبني الكائنات الابنة بنفسك، أو تستخدم مكتبة مثل dacite أو pydantic.dataclasses، أو تبدّل هذه الأداة إلى وضع Pydantic v2، حيث يحلّل Root.model_validate(json.loads(text)) الشجرة كاملة باستدعاء واحد.
هل بيانات JSON الخاصة بي خاصة وآمنة؟
نعم. يجري التحويل 100% في متصفحك باستخدام JavaScript. بيانات 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% داخل متصفحك. خرج بالاسم أو العشري أو السداسي عشري؛ لا يُرفع أبدًا.