محوّل YAML إلى JSON
الصق YAML (ملفات Kubernetes أو Docker Compose أو إعدادات CI) واحصل على JSON نظيف فورًا. تعرض الأخطاء السطر بالضبط مع مؤشر.
يعمل في متصفحكبدون تسجيللا يُرفع شيء
طريقة استخدام YAML إلى JSON
- الصق YAML في المربع الأيمن أو افتح ملف
.yaml/.yml. - يظهر JSON على اليسار أثناء الكتابة. اختر مسافتين أو 4 مسافات أو Tab للمخرجات.
- فعّل ترتيب المفاتيح لترتيب المفاتيح أبجديًا. يفيد ذلك عند مقارنة ملفات الإعداد.
- إذا كان YAML غير صالح، يعرض شريط الحالة السطر والعمود، وتظهر الأسطر المسببة للخطأ أسفله مع علامة
^. - انسخ JSON أو نزّله، أو اضغط تبديل لتحويله مرة أخرى إلى YAML.
كيف يُربط YAML بـ JSON
JSON مجموعة جزئية من YAML 1.2، لذا تصبح كل mapping في YAML كائن JSON، وكل sequence مصفوفة، وتصبح القيم المفردة سلاسل نصية أو أعدادًا أو قيمًا منطقية أو null. وتُعالَج الميزات الخاصة بـ YAML أثناء التحويل:
- التعليقات (
# …) تُحذف، لأن JSON لا يدعم التعليقات. - المراسي والأسماء المستعارة (
&baseو*baseو<<: *base) تُوسَّع إلى نسخ كاملة. - الطوابع الزمنية مثل
2024-01-02تصبح سلاسل ISO 8601. - السلاسل متعددة الأسطر (كتل
|الحرفية و>المطوية) تصبح سلاسل عادية مع تسلسلات\n.
YAML متعدد المستندات
يمكن لملف واحد أن يحتوي على عدة مستندات YAML مفصولة بـ ---، كما هو شائع في ملفات Kubernetes. لا يوجد مكافئ لذلك في JSON، لذا يُرجع المحوّل مصفوفة JSON بعنصر واحد لكل مستند ويذكر ذلك في شريط الحالة. ويُتجاهل --- المنفرد في النهاية.
مزالق YAML 1.1 مقابل 1.2
يتبع هذا المحوّل YAML 1.2، المواصفة الحالية. لا تزال كثير من الأدوات القديمة (PyYAML وPsych في Ruby وبعض إصدارات Kubernetes وAnsible) تقرأ YAML 1.1، حيث تختلف القواعد:
- مشكلة النرويج: في YAML 1.1، يعني
country: noالقيمةfalse، فيختفي رمز النرويجNO. والأمر نفسه ينطبق علىyesوonوoffوyوn. أما YAML 1.2 فلا يعتبر قيمًا منطقية سوىtrueوfalse. - الأعداد الثمانية:
0755عدد ثماني في 1.1 لكنه عدد عشري عادي في 1.2، التي تستخدم0o755. اقتبس أذونات الملفات لتكون في أمان. - الأعداد الستينية: في 1.1، قد يُحلَّل
22:30كالعدد 1350. اقتبس الأوقات وتعيينات المنافذ مثل"8080:80".
يقتبس اتجاه JSON → YAML السلاسل الملتبسة ('no' و'on' و'y') تلقائيًا، لذا يُقرأ YAML الناتج بالطريقة نفسها في الإصدارين.
الأسئلة الشائعة
هل يُرفع YAML الخاص بي إلى أي مكان؟
لماذا يفشل YAML لديّ بخطأ “bad indentation”؟
-) ذات مسافة بادئة متسقة تحت المفتاح الأب.ماذا يحدث لتعليقات YAML؟
لماذا بقيت <code>no</code> سلسلة نصية؟
true/false. أما محللات YAML 1.1 القديمة فتحوّل no وyes وon وoff إلى قيم منطقية (“مشكلة النرويج”).هل يمكنني تحويل ملف Kubernetes يحتوي على عدة موارد؟
--- عنصرًا في مصفوفة JSON الناتجة، جاهزًا لـ jq أو kubectl apply -f -، الذي يقبل قوائم JSON أيضًا.