تحويل YAML إلى JSON أونلاين
تحويل YAML إلى JSON بمخطط آمن مع المراسي ومفاتيح الدمج وسطر الخطأ
تعمل في متصفحك · لا يُرفع أي شيء
ما هذه الأداة؟
كثيرًا ما تُكتب الإعدادات بصيغة YAML بينما تتبادل البرامج البيانات بصيغة JSON. تحوّل هذه الأداة YAML إلى JSON، وتتحدث النتيجة أثناء الكتابة، وتُعرض أخطاء الصياغة برقم السطر والعمود.
طريقة الاستخدام
- الصق YAML في خانة الإدخال.
- اختر مسافتين أو 4 مسافات أو Tab أو الضغط لمخرجات JSON.
- انسخ النتيجة.
- إذا ظهر خطأ برقم سطر وعمود فراجع المسافات البادئة وعلامات الاقتباس والمسافة بعد النقطتين قرب ذلك الموضع.
كيف تعمل؟
- يتم التحليل بمكتبة js-yaml وفق المخطط الأساسي لـ YAML 1.2. لا يُقرأ كقيم منطقية وnull وأرقام إلا
true/falseوnull(أو~) والأعداد الصحيحة العشرية والثمانية والست عشرية والأعداد العشرية. كل ما عدا ذلك نص، و"123"المقتبسة نص دائمًا. - الوسوم المخصصة ووسوم الشيفرة مثل
!!js/functionغير مدعومة وتُنتج خطأ، ولا يُنفَّذ أي شيء كشيفرة. - تُوسَّع المراسي (
&) والأسماء المستعارة (*) إلى قيمها، ويُحل مفتاح الدمج<<. والمفتاح المكرر في الخريطة نفسها خطأ. - مواضع الأخطاء أسطر وأعمدة تبدأ من 1.
- تُجمع المستندات المتعددة في مصفوفة. والمدخلات الفارغة خطأ.
- القيم التي لا يستطيع JSON تمثيلها تُحوَّل وفق قواعد JSON نفسه، فتصبح
.infو.nanقيمةnull. وتُقرَّب الأعداد الصحيحة الأكبر من 2^53 عند قراءتها كأرقام JavaScript.
أمثلة
المدخلات:
base: &b
x: 1
item:
<<: *b
name: أحمد
النتيجة:
{"base": {"x": 1}, "item": {"x": 1, "name": "أحمد"}}
الأسئلة الشائعة
هل يُنفَّذ وسم مثل !!js/function؟
لا. تستخدم الأداة مخططًا آمنًا يقرأ البيانات العادية فقط (النصوص والأرقام والقيم المنطقية وnull والمصفوفات والكائنات). الوسوم المخصصة والدوال لا تُنفَّذ أبدًا وتُعرض كأخطاء.
أين أرى ما الخطأ في ملف YAML؟
عند الفشل تعرض الأداة السطر والعمود الذي اكتُشفت فيه المشكلة مع شرح المحلّل. المسافات البادئة الخاطئة وعلامات الاقتباس أو الأقواس غير المغلقة أسباب شائعة، وقد يأتي الموضع المكتشف بعد السبب الحقيقي مباشرة، فراجع الأسطر التي فوقه أيضًا.
هل تصبح yes وno وon وoff قيمًا منطقية؟
لا. وفقًا لـ YAML 1.2 فإن true وfalse وحدهما قيمتان منطقيتان، أما yes وno وon وoff فتبقى نصوصًا. والقيمة التي تشبه التاريخ مثل 2024-01-02 تبقى نصًا عاديًا أيضًا ولا تصبح كائن تاريخ.
لماذا يظهر خطأ «too many aliases»؟
لأسباب أمنية لا يُسمح في المستند بأكثر من 100 اسم مستعار. المدخلات التي تداخل الأسماء المستعارة لتضخيم المخرجات أُسيًا (قنبلة الأسماء المستعارة) قد تجمّد علامة تبويب المتصفح، لذلك تحدّ الأداة من عدد الأسماء المستعارة ومن حجم النتيجة (نحو 5 MB). وملفات الإعدادات العادية أقل من هذه الحدود بكثير.
ماذا لو احتوت المدخلات على عدة مستندات يفصل بينها ---؟
المستند الواحد يعطي قيمته. ومستندان أو أكثر يعطيان مصفوفة JSON بالمستندات بترتيبها، مع ملاحظة تخبرك بعدد ما وُجد منها.