محوّل JSON إلى YAML

حوّل JSON إلى YAML نظيف وسهل القراءة لـ Kubernetes أو Docker Compose أو GitHub Actions أو Ansible، مع تحكم كامل في المسافات البادئة والنمط وعلامات الاقتباس.

يعمل في متصفحكبدون تسجيللا يُرفع شيء

مخرجات JSON

طريقة استخدام JSON إلى YAML

  1. الصق JSON في المربع الأيمن أو افتح ملف .json.
  2. يظهر YAML على اليسار أثناء الكتابة.
  3. اختر المسافة البادئة (مسافتان أو 4 مسافات) والنمط: block (مفتاح واحد في كل سطر) أو flow ({a: 1}/[x, y]) بدءًا من مستوى تداخل معيّن.
  4. اختر نمط الاقتباس وفعّل ترتيب المفاتيح إن أردت ترتيبًا أبجديًا.
  5. انسخ YAML أو نزّله. يُبلَّغ عن JSON غير الصالح مع السطر والعمود والسبب المرجّح.

لماذا تحوّل JSON إلى YAML؟

JSON مثالي للآلات وواجهات API، لكن YAML أسهل على البشر في القراءة والتعديل: بلا أقواس معقوصة، وبلا علامات اقتباس إلزامية، مع دعم التعليقات. تُضبط معظم أدوات البنية التحتية، ومنها Kubernetes وHelm وDocker Compose وGitHub Actions وGitLab CI وAnsible، بصيغة YAML، بينما تكون البيانات التي تبدأ منها (مخرجات API، وkubectl get -o json، وحالة Terraform) بصيغة JSON غالبًا.

نمط block مقابل flow

نمط block يضع كل مفتاح وعنصر قائمة في سطر مستقل، وهو الخيار المعتاد لملفات الإعداد. أما نمط flow فيستخدم {} و[] السطرية، مثل JSON، ويُبقي البنى الطرفية القصيرة مضغوطة. خيار “Flow من المستوى 2” يُبقي المستويين الأعليين بنمط block ويجعل كل ما هو أعمق سطريًا، وهذا مناسب للقوائم الطويلة من الكائنات الصغيرة مثل المنافذ أو متغيرات البيئة.

الاقتباس الآمن

تُقتبس تلقائيًا السلاسل التي قد يُسيء محلّل YAML فهمها: قيم مثل 'no' و'on' و'1.0' و'null'، والسلاسل التي تبدأ بـ * أو &، والسلاسل التي تحتوي على : . اختر مفردة دائمًا أو مزدوجة دائمًا إذا كان دليل الأسلوب لديك يتطلب اقتباس كل سلسلة.

مزالق 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 الناتج بالطريقة نفسها في الإصدارين.

الأسئلة الشائعة

هل التحويل بلا فقدان للبيانات؟
نعم. كل مستند JSON هو YAML 1.2 صالح، ويُحلَّل YAML المُنشأ إلى البيانات نفسها تمامًا. يمكنك التحقق بالضغط على تبديل.
لماذا تُقتبس بعض السلاسل دون غيرها؟
مع خيار عند الحاجة فقط، تُضاف علامات الاقتباس فقط حيث تتغير دلالة القيمة لو لم تُقتبس، مثل 'yes' أو '123' أو السلاسل ذات الأحرف الخاصة. ويُترك كل ما عدا ذلك دون اقتباس لسهولة القراءة.
هل يمكنني إضافة تعليقات إلى المخرجات؟
لا يحتوي JSON على تعليقات، لذا لا يوجد ما يُحوَّل، لكن يمكنك إضافة # comments إلى YAML بعد نسخه.
هل يتغير ترتيب المفاتيح؟
لا. تحتفظ المفاتيح بترتيبها في JSON ما لم تفعّل ترتيب المفاتيح.
هل بياناتي خاصة؟
نعم. يعمل المحوّل في متصفحك ولا يُجري أي طلبات شبكة بمدخلاتك.

أدوات ذات صلة