محوّل YAML إلى JSON
حوّل YAML إلى JSON أو JSON إلى YAML، مباشرةً أثناء الكتابة. يعمل بالكامل في متصفحك، لا شيء مما تلصقه يُرفَع.
ملفات إعدادات قابلة للنقل
YAML شائع في Docker Compose وKubernetes وإعدادات CI.
YAML أسهل للبشر في القراءة والتحرير، لكن JSON هو ما تتوقعه معظم واجهات API ولغات البرمجة. تُحوِّل هذه الأداة بين الاثنين بالكامل داخل متصفحك، في كلا الاتجاهين.
ما المدعوم
الخرائط والتسلسلات الكتلية والانسيابية، السلاسل المقتبسة والعادية، الأرقام، القيم المنطقية، null، والتعليقات. المراسي والأسماء المستعارة، والملفات متعددة المستندات، وسلاسل الكتل متعددة الأسطر (| / >) غير مدعومة.
كيف تعمل
يعمل محوّل YAML إلى JSON عبر محلل تنازلي تكراري صغير مكتوب خصيصًا لهذه الصفحة. يزيل أولاً التعليقات (بعناية، بحيث تنجو علامة # داخل سلسلة مقتبسة)، ويسجّل مسافة الإزاحة لكل سطر، ثم يبني البنية بالطريقة التي يعرّفها YAML: الإزاحة تفتح خرائط متداخلة، والأسطر التي تبدأ بـ - تبني تسلسلات، وكل ما عدا ذلك هو قيمة عددية (scalar). تُصنَّف القيم العددية وفق نفس القواعد التي تستخدمها محلّلات YAML الحقيقية: تصبح true/false قيمًا منطقية، وتصبح ~ وnull قيمة null، وتصبح الأرقام المجردة أرقامًا، وتبقى السلاسل المقتبسة سلاسل، وتُعالَج أيضًا صياغة التدفق المضمّنة مثل [a, b] أو {k: v}. تُسلسَل النتيجة باستخدام JSON.stringify بمسافة الإزاحة التي تختارها. أما JSON إلى YAML فهو العكس: يتحقق JSON.parse من صحة الإدخال، ثم يمر مُصدِر عبر القيمة ويكتب YAML بإزاحة مناسبة، مع وضع أي سلسلة قد تُقرأ خطأً كرقم أو قيمة منطقية أو null بين علامتي اقتباس.
خيار مقصود يستحق المعرفة: يعامل هذا المحلل فقط الحرفيتين true وfalse كقيم منطقية. محلّلات YAML 1.1 الأقدم تحوّل أيضًا yes وno وon وoff، وهذا بالضبط كيف يتحول رمز دولة النرويج NO بشكل شهير إلى false في ملفات الإعداد ("مشكلة النرويج"). هنا يبقى كما يبدو: سلسلة نصية.
إنه محلل مجموعة جزئية، مُبقًى صغيرًا عمدًا: المراسي والأسماء المستعارة (&/*)، والملفات متعددة المستندات، وسلاسل الكتل (| و>) غير مدعومة، لذا فإن بيان Kubernetes معقدًا يستخدم هذه الميزات لن يُحوَّل ذهابًا وإيابًا بشكل صحيح. بالنسبة لتحويل الإعدادات اليومية، فهو يغطي ما تلصقه فعليًا.
يحدث التحويل بالكامل داخل تبويبك مع كل ضغطة مفتاح. لا يُستدعى أي خادم تحليل: تبقى لوحة Network في أدوات المطوّر صامتة أثناء الكتابة، لذا فإن ملفات الإعداد المليئة بأسماء المضيفين والأسرار لا تغادر جهازك أبدًا.