تخطي إلى المحتوى الرئيسي
FreeOnlineTools Go
العربية
مقارنة

JSON مقابل YAML: الفروق ومتى تستخدم كل منهما

بواسطة {author} · تم التحديث في 2026-09-02

إجابة سريعة

YAML يدعم التعليقات (#)، المراجع، والبنى بدون أقواس — أسهل للتكوين. JSON صارم وأسرع — أفضل لواجهات برمجة التطبيقات. استخدم محول JSON YAML المجاني للتحويل الثنائي في متصفحك.

مقدمة

YAML هو superset من JSON يدعم التعليقات والمراجع anchors والبنى البشرية بدون أقواس. JSON أكثر صرامة وأسرع في التحليل. YAML شائع في ملفات التكوين (Docker Compose، CI/CD) بينما JSON شائع في واجهات برمجة التطبيقات وتبادل البيانات.

خطوة بخطوة

  1. قارن بناء الجملة وسهولة القراءة

    JSON يستخدم الأقواس وعلامات الاقتباس: {"key": "value"}. يستخدم YAML المسافة البادئة والنقطتين: المفتاح: القيمة. يعد YAML أكثر نظافة للتكوين - لا حاجة إلى علامات اقتباس للسلاسل، ولا فواصل بين العناصر، ولا توجد أقواس. JSON أكثر وضوحًا وأقل عرضة للخطأ في تبادل البيانات.

  2. قارن الميزات

    يدعم YAML: التعليقات (#)، والسلاسل متعددة الأسطر (|، >)، والمثبتات (&) والأسماء المستعارة (*)، والمستندات المتعددة في ملف واحد (---)، والأنواع المعقدة. JSON لا يدعم أيًا من هذه — لا تعليقات ولا سلاسل متعددة الأسطر ولا مراجع. إن بساطة JSON مقصودة: فهي عبارة عن تنسيق لتبادل البيانات، وليست لغة تكوين.

  3. قارن بين السلامة والتحليل

    يعد تحليل JSON سريعًا وآمنًا — JSON.parse مدمج في كل محرك JavaScript. تحليل YAML أبطأ وأكثر تعقيدًا - مواصفات YAML هي أكثر من 80 صفحة مقابل صفحتين في JSON. لدى YAML مخاطر أمنية (هجوم بمليارات الضحكات عبر المراسي) لا يواجهه JSON. استخدم دائمًا محلل YAML الآمن الذي يقوم بتعطيل نقاط الارتساء.

  4. قارن استخدام النظام البيئي

    JSON: REST APIs، package.json، tsconfig.json، قواعد بيانات NoSQL، تطبيقات الويب. YAML: Docker Compose، وبيانات Kubernetes، وإجراءات GitHub، وأدلة التشغيل Ansible، وتكوينات CI/CD، ومواصفات OpenAPI. JSON يهيمن على بيانات وقت التشغيل؛ YAML يهيمن على التكوين.

  5. قرر بناءً على حالة الاستخدام الخاصة بك

    APIs، تبادل البيانات، NoSQL، حالة تطبيق الويب: JSON. ملفات التكوين، DevOps، CI/CD، البنية التحتية كرمز: YAML. إذا كتبه البشر باليد: YAML. إذا قامت الآلات بإنتاجه واستهلاكه: JSON.

أمثلة

نفس التكوين في JSON وYAML

مدخل: JSON: {"server": {"port": 8080, "host": "localhost"}} YAML: server:\n port: 8080\n host: localhost

الإخراج: YAML أقصر بنسبة 30% ويدعم التعليقات. JSON أكثر صرامة وقابلة للتحليل عالميًا.

المشاكل الشائعة

  • أخطاء المسافة البادئة YAML: يستخدم YAML المسافة البادئة للهيكل، ومسافة واحدة خاطئة تفصل التحليل - استخدم محررًا مع فحص YAML واستخدم المسافات دائمًا، وليس علامات التبويب أبدًا.
  • هجوم مليار YAML يضحك: يمكن أن تؤدي نقاط ربط YAML والأسماء المستعارة إلى توسع هائل، مما يتسبب في حجب الخدمة - استخدم محلل YAML الآمن الذي يعطل نقاط التثبيت (على سبيل المثال، yaml.safe_load في Python).
  • JSON ليس لديه أي تعليقات: JSON المواصفات تمنع التعليقات، مما يجعل التعليق التوضيحي على ملفات التكوين أكثر صعوبة - استخدم YAML للتكوين الذي يحرره الإنسان، JSON للبيانات التي يتم إنشاؤها بواسطة الآلة.
  • مفاجآت الكتابة الضمنية YAML: يقوم YAML بتحويل نعم/لا تلقائيًا إلى قيمة منطقية و1.0 إلى قيمة عائمة، مما قد يؤدي إلى كسر حقول السلسلة - اقتباس السلاسل بشكل صريح لتجنب إكراه النوع غير المتوقع.

نصائح

  • استخدم YAML للتكوين البشري (Docker Compose وKubernetes وCI/CD) وJSON لتبادل البيانات التي تم إنشاؤها بواسطة الآلة (APIs وNoSQL وحالة التطبيق).
  • استخدم دائمًا محلل YAML الآمن الذي يقوم بتعطيل نقاط الارتساء والأسماء المستعارة - لا تستخدم أبدًا مُحمل YAML للأغراض العامة على مدخلات غير موثوقة.
  • عند تحويل YAML إلى JSON، توقع فقدان التعليقات والسلاسل متعددة الأسطر والمثبتات - JSON هي مجموعة فرعية من YAML، وليس العكس بالنسبة للميزات.
  • مسافة بادئة لـ YAML بمسافتين بشكل متسق - يعد خلط علامات التبويب والمسافات أو استخدام مسافة بادئة غير متناسقة هو الخطأ الأكثر شيوعًا في تحليل YAML.

الأدوات ذات الصلة

أدلة ذات صلة

مراجع