محوّل YAML وJSON

حوّل YAML إلى JSON والعكس، مع أخطاء واضحة لأخطاء الإزاحة التي اشتهر بها YAML.

تتم المعالجة على جهازك — بلا رفع

termiva yaml2json config.yml
0 حرفًا
الاتجاه
الإزاحة

أخطاء YAML تبلّغ عن السطر، وهو المشكلة الحقيقية في الغالب الأعمّ — مسافة جدولية حيث كانت المسافات متوقَّعة، أو مفتاح أُزيح مسافة زائدة.

0 حرفًا
المحلّل يُحمَّل…الاتجاه YAML → JSONخارج 0 Bلا شيء مرفوع

كيف تحوّل بين YAML وJSON

  1. اختر اتجاهًا.
  2. الصق ملف الإعداد عندك، أو اختر ملفًّا.
  3. انسخ الناتج المحوَّل.

كيف يعمل

الصيغتان تصفان الأشكال نفسها — الخرائط والمتتاليات والقيم المفردة — فالتحويل تحليل في واحدة وتسلسل في الأخرى. والذي يختلف هو ما تتسامح معه كل صيغة.

وYAML يستعمل الإزاحة للبنية، والمسافات وحدها. فالمسافة الجدولية خطأ صياغي لا مسافة عريضة، وهو أشيع إخفاق في YAML بمفرده والذي تخفيه المحرّرات بعرضها المسافات الجدولية مسافاتٍ. والأخطاء هنا تبلّغ عن السطر، لأن السطر هو الجواب في الغالب الأعمّ.

وبعض السلاسل تحتاج اقتباسًا وليس بيّنًا أيّها. فـyes وno وon وoff قيم منطقية في YAML 1.1، فرمز بلد قيمته NO يصير false. وإصدار مكتوب 1.10 يصير العدد 1.1. والتحويل إلى JSON والعودة طريقة سريعة لترى ما يعنيه YAML عندك فعلًا لا ما يبدو عليه.

وفي الاتجاه الآخر، تُوسَّع المراسي والأسماء البديلة — آلية إعادة الاستعمال في YAML — لأن JSON لا سبيل فيه للتعبير عن مرجع. فالبيانات واحدة؛ والملف أطول.

مثال عملي

اضغط حمّل عيّنة YAML: ملف Docker Compose، وهو حيث يلتقي معظم الناس بـYAML.

وبتحويله إلى JSON تصير البنية صريحة — كل خريطة بين قوسين معقوفين، وكل متتالية بين قوسين مربّعين. وهذه أسرع طريقة لتفحص ما أنتجته إزاحتك فعلًا. فمفتاح ظننته متداخلًا تحت web ويظهر في المستوى الأعلى من JSON يخبرك أنه أُزيح بمسافة واحدة أقلّ، ويشير إلى السطر بالضبط.

والآن فخّ الاقتباس. أضف سطرًا يقرأ enabled: yes وحوّل. يعود في JSON هكذا true، لا "yes". فإن كانت تلك القيمة رمز بلد أو جواب مستخدم، فقد غيّرها YAML في صمت. اقتبسها — enabled: "yes" — فتبقى سلسلة.

والاتجاه العكسي نافع لتوليد الإعدادات. اكتب الإعدادات أو اجلبها بصيغة JSON، وحوّلها إلى YAML، والصقها في ملف Compose أو بيان Kubernetes والإزاحة صحيحة أصلًا.

وإذا احتاجت جهة JSON ترتيبًا أولًا، فالمنسّق يبلّغ عن سطر أي خطأ صياغي وعموده بالضبط.

أسئلة

هل يُرفع ملف إعدادي؟

لا. يجري الاتجاهان في متصفّحك — وهذا يهمّ، لأن ملفات الإعداد تحوي بانتظام أسماء مضيفين وبيانات اعتماد وتفاصيل بنية تحتية.

لماذا يرفض YAML المسافات الجدولية عندي؟

لأن المواصفة تمنع المسافات الجدولية في الإزاحة. اضبط محرّرك ليُدخل مسافات في ملفات ‎.yml‎؛ وهذا أشيع خطأ في YAML على الإطلاق.

لماذا صارت «yes» عندي true؟

YAML 1.1 يعامل yes وno وon وoff قيمًا منطقية. اقتبس القيمة إن كنت تقصد الكلمة. وهذا ما يحوّل رمز البلد NO إلى false.

ماذا يحدث للتعليقات؟

تضيع. فـJSON بلا صياغة تعليقات، والتحويل إليه والعودة لا يجلبها معه.

ماذا يحدث للمراسي والأسماء البديلة؟

تُوسَّع، لأن JSON لا يستطيع التعبير عن مرجع. فالبيانات نفسها؛ والملف أطول.

أيّهما أفضل للإعدادات؟

YAML أيسر قراءةً وكتابةً باليد ويدعم التعليقات. وJSON لا لبس فيه وبلا مفاجآت في الأنواع. ومعظم الأدوات تقبل الاثنين.

هل يتعامل مع YAML متعدّد المستندات؟

المستند الأول فقط. والملفات المفصولة بـ--- تحتاج تقسيمًا قبل التحويل.

كيف أجد الخطأ في ملف YAML كبير؟

الرسالة تتضمّن رقم السطر. وهو يكاد دائمًا يكون خطأ إزاحة أو مسافة جدولية، وكلاهما غير مرئي في معظم المحرّرات.

هل محوّل YAML وJSON مجاني على الإنترنت؟

نعم — مجاني، بلا حساب، وبلا حد يومي، وبلا علامة مائية. يعمل في متصفّحك عبر الإنترنت، ولأن المعالجة تجري على جهازك فإنه يستمر في العمل دون اتصال بعد تحميل الصفحة.

للقراءة