كيفية الاستخدام
- الصق YAML في حقل الإدخال، أو جرّب المثال.
- اختر إزاحة بمسافتين أو 4 مسافات.
- انسخ JSON أو نزّله كملف .json.
كيف تعمل الأداة
تتم معالجة YAML باستخدام مكتبة yaml مفتوحة المصدر مع مخطط YAML 1.2 الأساسي، وهو ما تتوقعه الأدوات الحديثة: تبقى yes وno وon وoff نصوصًا، ويكون true وfalse فقط قيمًا منطقية. تُوسَّع الارتساءات (&name) والأسماء المستعارة (*name) وتُطبَّق مفاتيح الدمج <<؛ وعدد توسيعات الأسماء المستعارة محدود، لذا تُرفض المستندات المتفجرة عمدًا بدلًا من تجميد الصفحة.
يصبح الملف الذي يحتوي على عدة مستندات مفصولة بـ --- مصفوفة JSON بعنصر لكل مستند. لا يوجد مكافئ JSON للتعليقات والارتساءات والوسوم فتُسقط؛ وتحافظ المفاتيح على ترتيبها. تبقى الطوابع الزمنية نصوصًا. الأعداد الصحيحة التي تزيد عن 15 رقمًا تقريبًا تفقد الدقة، كما هو الحال مع أي JSON يُعالج في JavaScript.
إذا كان YAML غير صالح، يُعرض الخطأ الأول مع سطره وعموده، مثل استخدام Tab للإزاحة أو قوس إغلاق ناقص. للاتجاه المعاكس استخدم JSON إلى YAML، أو المحول ثنائي الاتجاه JSON ⇄ YAML.
أمثلة
ملف CI مع ارتساءات
قائمة مهام تعيد استخدام كتلة defaults مع <<: *defaults فتُحوَّل إلى JSON مع نسخ القيم الافتراضية إلى كل مهمة، بحيث ترى بالضبط ما تحصل عليه كل مهمة.
ملف Kubernetes متعدد المستندات
ملف يحتوي على Deployment وService مفصولين بـ --- يصبح مصفوفة JSON من كائنين، جاهزًا للاستخدام مع kubectl أو jq.
الأسئلة الشائعة
لماذا تبقى yes نصًا؟
YAML 1.2، المستخدم هنا وفي معظم الأدوات الحالية، يعامل true وfalse فقط كقيم منطقية. أما محللات YAML 1.1 القديمة فكانت تحول yes وno وon وoff إلى قيم منطقية، مما سبب العديد من الأخطاء.
ماذا يحدث للتعليقات؟
لا يدعم JSON التعليقات، لذا تُسقط. البيانات نفسها لا تتغير.
هل يوجد حد للحجم؟
ذاكرة متصفحك فقط. تُحوَّل الملفات الكبيرة بعد توقف قصير أثناء الكتابة، لتبقى الصفحة سريعة الاستجابة.
الخصوصية
يعمل التحويل بالكامل في متصفحك. لا يُرفع YAML أو JSON الخاص بك ولا يُخزَّن.