محوّل ومنسّق YAML ↔ JSON
حوّل بين صيغتَي YAML وJSON، أو نسّق YAML والتحقق من صحته. يكتشف صيغة المدخلات تلقائيًا. مجاني ويعمل بالكامل في متصفحك.
طريقة الاستخدام
- الصق YAML أو JSON في حقل الإدخال — تكتشف الأداة الصيغة تلقائيًا
- انقر على 'إلى JSON' للتحويل إلى JSON، أو على 'إلى YAML' للتحويل إلى YAML
- استخدم 'تنسيق YAML' لتجميل مستند YAML دون تحويله
- استخدم 'ضغط' للحصول على مخرجات JSON مضغوطة في سطر واحد
- اضبط محدد المسافة البادئة للتحكم في مسافات بادئة المخرجات
- انقر على نسخ لنسخ النتيجة، أو على مسح لإعادة الضبط
الأسئلة الشائعة
-
ما هو YAML؟
YAML (YAML Ain't Markup Language) هو تنسيق تسلسل بيانات مقروء للبشر، يُستخدم على نطاق واسع في ملفات الإعدادات وخطوط أنابيب CI/CD ومانيفستات Kubernetes. يعتمد على المسافات البادئة لتمثيل البنية بدلًا من الأقواس المعقوصة.
-
متى يجب استخدام YAML بدلًا من JSON؟
استخدم YAML لملفات الإعدادات والملفات التي سيقرأها أو يحررها البشر مباشرةً، لأنه يدعم التعليقات وأقل إسهابًا. استخدم JSON لاستجابات API وتبادل البيانات، لأنه مدعوم بشكل أوسع ومحدد بصرامة.
-
هل يستطيع YAML تمثيل كل ما يستطيعه JSON؟
نعم. JSON هو مجموعة فرعية من YAML — أي JSON صالح هو أيضًا YAML صالح. يدعم YAML إضافةً إلى ذلك التعليقات والنصوص متعددة الأسطر والمراسي والأسماء المستعارة.
-
هل تُرسَل بياناتي إلى خادم؟
لا. يتم التحويل بالكامل في متصفحك باستخدام مكتبة js-yaml. لا تغادر بياناتك جهازك أبدًا.
-
ماذا يحدث إذا كانت المدخلات غير صالحة؟
ستظهر رسالة خطأ أسفل الأزرار تصف بالضبط مكان فشل التحليل، حتى تتمكن من تحديد المشكلة وإصلاحها بسرعة.
متى تختار YAML؟ ومتى تختار JSON؟
اختيار التنسيق المناسب يؤثر على قابلية الصيانة وسهولة التعاون في مشاريعك. كلا التنسيقين يُمثّلان نفس البيانات الهيكلية، لكن لكل منهما سياقاته المثالية.
حالات الاستخدام التي تتفوق فيها YAML
ملفات الإعداد للمطورين والمشاريع
YAML هو الخيار الأول لأي ملف يُحرّره البشر مباشرة ودوريًا. سبب ذلك بسيط: التعليقات. إمكانية شرح سبب كل إعداد مباشرة في الملف قيمة لا تُعوَّض:
# حد الاتصالات - زده للإنتاج، خفّضه للتطوير المحلي
database:
max_connections: 100 # لا تتجاوز 500 في أي حال
timeout: 30 # بالثواني
نفس الملف بـ JSON سيكون بلا تعليقات، ومن يراه لأول مرة لن يفهم سبب القيم المختارة.
بيئات CI/CD وKubernetes وAnsible
YAML أصبح اللغة الرسمية لعالم DevOps الحديث. ملفات GitHub Actions وGitLab CI وHelm Charts وAnsible Playbooks كلها YAML. هذا ليس صدفة — تعقيد هذه الملفات وحاجتها لتعليقات توضيحية جعل YAML الخيار الطبيعي.
الملفات متعددة الوثائق
YAML يدعم وثائق متعددة في ملف واحد مفصولة بـ ---، وهو ما تستخدمه ملفات Kubernetes لتضمين عدة موارد في ملف واحد:
apiVersion: v1
kind: Service
metadata:
name: my-service
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
حالات الاستخدام التي يتفوق فيها JSON
استجابات واجهات برمجة التطبيقات (REST APIs)
JSON هو المعيار الغير رسمي لـ APIs على الإنترنت. كل متصفح يُحلّله أصليًا، وكل إطار عمل يُعامله بشكل مُدمج. السبب التاريخي هو أصله في JavaScript، لكنه الآن معيار مستقل.
تخزين البيانات وقواعد البيانات
قواعد بيانات مثل MongoDB وCouchDB وFirestore وPostgreSQL (مع نوع jsonb) تستخدم JSON للتخزين. الدقة والبنية الصارمة تجعله أنسب للاستعلامات الآلية والفهرسة.
التكوين الآلي والـ SDKs
حين تنشئ ملفات إعداد برمجيًا (مثل ملفات Terraform أو Pulumi)، JSON أكثر أمانًا لأنه لا يحتاج لاعتبار المسافة البادئة ولا توجد فيه أنواع ضمنية مفاجئة.
الاعتبارات التقنية عند التحويل
فقدان التعليقات
عند تحويل YAML إلى JSON، تُحذف جميع التعليقات. هذا أمر متوقع لأن JSON لا يدعمها. إذا كانت التعليقات مهمة، احتفظ بالنسخة الأصلية من YAML.
الأنواع الضمنية في YAML
YAML يُحوّل بعض القيم تلقائيًا:
true,false,yes,no→ Boolean123→ Integer3.14→ Floatnull→ Null
عند تحويل YAML إلى JSON، هذه التحويلات تُحفظ. لكن احذر: on في YAML يُصبح true في JSON، وهذا قد يُفاجئك إذا كنت تتوقع نصًا.
المراسي والأسماء المستعارة في YAML
YAML يدعم مراسي (&anchor) وأسماء مستعارة (*alias) لتجنب تكرار البيانات. عند تحويلها إلى JSON، تُفكَّك إلى نسخ كاملة مما يُضخّم حجم الملف.
اختيار التنسيق في مشاريع متعددة المساهمين
في الفرق الكبيرة، التوحيد أهم من الأمثلية. إذا كان فريقك يستخدم JSON بشكل موحد، الاستمرار فيه أولى من التبديل لـ YAML لبعض الملفات فقط. لكن للمشاريع الجديدة التي تحتوي ملفات إعداد مُعقّدة، YAML خيار منطقي يُسهّل التوثيق والمراجعة.