محول JSON إلى YAML
الصق JSON على اليمين، احصل على YAML 1.2 نظيف على اليسار. يعمل في متصفحك — بدون رفع.
- الصق JSON في منطقة النص اليمنى.
- انقر «التحويل إلى YAML». يظهر مخرج YAML على اليسار.
- انسخ النتيجة أو انقر «تنزيل» لحفظها كـ data.yaml.
- إذا كان JSON غير صالح، تشير رسالة الخطأ إلى الموضع المخالف.
ماذا تفعل؟
يحوّل JSON إلى YAML 1.2 المكافئ. تصبح الكائنات تعيينات (mappings) والمصفوفات تسلسلات (sequences)، وتحافظ الأرقام/البولين/null/السلاسل على نوعها. يستخدم المخرج افتراضيًا مسافتي بادئة ولكن عرض سطر 100 عمود. الذهاب JSON → YAML → JSON يبقي البيانات متطابقة دلاليًا، لكن التعليقات وفروق الترتيب قيود من جانب JSON يجب الانتباه لها.
مثال
مدخل JSON:
{"name":"Ada","tags":["math","logic"],"active":true} مخرج YAML:
name: Ada
tags:
- math
- logic
active: true أخطاء JSON الشائعة وكيفية إصلاحها
يجب أن يكون JSON صالحًا قبل أن تستطيع هذه الأداة تحويله إلى YAML. يشير المحلِّل إلى رقم السطر والعمود لأي فشل — هذه الأنماط تفسّر تقريبًا جميع أخطاء «JSON غير صالح».
- فاصلة لاحقة. `{"a": 1, "b": 2,}` غير صالح. لا يسمح JSON بفاصلة بعد العنصر الأخير من كائن أو مصفوفة.
- علامات اقتباس مفردة. `{'a': 1}` غير صالح. يجب أن تستخدم سلاسل ومفاتيح JSON علامات اقتباس مزدوجة.
- مفاتيح بدون اقتباس. `{a: 1}` غير صالح — تسمح حرفيات الكائنات في JavaScript بهذا، أما JSON فلا. غلِّف المفتاح بعلامات اقتباس مزدوجة.
- تعليقات. لا يُسمح بتعليقات // أو /* */ في JSON الصارم. أزلها قبل التحويل، أو استخدم مخرج YAML (الذي يدعم تعليقات #) وألصقها يدويًا.
- علامات اقتباس ذكية. النسخ واللصق من معالج النصوص يستبدل أحيانًا " بعلامات اقتباس منحنية — يرفضها JSON. أعد كتابتها أو ألصقها عبر محرر نص عادي.
- NaN / Infinity. لا يحوي JSON تمثيلًا لـ NaN أو Infinity أو -Infinity. إذا احتوت بياناتك عليها، اختر: التسلسل كـ null (يفقد المعلومات) أو كسلسلة "NaN" (يحفظ النية لكنه يغيّر النوع).
الأسئلة الشائعة
لماذا لا يحوي مخرج YAML تعليقات؟
لا يحوي JSON صياغة تعليقات، فلا تعليقات لتنقل. إذا أردت YAML بتعليقات، حرّر المخرج يدويًا بعد التحويل. تستخدم بعض الفرق حقل `_comment` في JSON لتشفير التعليقات، لكنها تصبح مفاتيح عادية في YAML — وليست تعليقات حقيقية.
هل يُحفظ ترتيب المفاتيح؟
نعم. يُحفظ ترتيب مفاتيح كائنات JSON كترتيب تعيينات YAML — كما تفعل JSON.parse + JSON.stringify في المتصفحات الحديثة التي تحفظ ترتيب الإدراج. للترتيب الأبجدي، رتّب JSON أولًا.
كيف تُنسَّق البنى المتداخلة بعمق؟
يستخدم مخرج YAML مسافتي بادئة لكل مستوى، مع تسلسلات بأسلوب الكتلة (عنصر لكل سطر مسبوق بـ `-`). تُعرَض الكائنات والمصفوفات الفارغة كـ `{}` و `[]` على التوالي — أسلوب التدفق، لأن أسلوب الكتلة سيكون غامضًا للفارغ.
هل يدعم البيانات الثنائية؟
لا يحوي JSON نوعًا ثنائيًا أصليًا، لذا تكون البيانات الثنائية عادةً مرمَّزة بالفعل كسلسلة base64 في المدخل. يحفظ مخرج YAML تلك السلسلة. إن احتجت فعلًا إلى تنسيق YAML الثنائي (`!!binary`)، فالتحويل لا ينتجه — احتفظ بنهج سلسلة base64.
هل هذا آمن لـ JSON الحساس مثل مفاتيح API؟
نعم. كل شيء يعمل في متصفحك. يُحلَّل مدخلك ويُحوَّل بـ JavaScript على هذه الصفحة؛ لا يُتصَل بأي خادم. تحقَّق في أدوات المطوّر بالمتصفح — لا توجد أي طلبات شبكة عند النقر على «تحويل».
هل يمكنني الذهاب JSON → YAML → JSON والعودة؟
للبيانات، نعم — تُحفَظ الدلالة. للنص المتطابق بايتيًا تمامًا، لا — تُطبَّع المسافات وعلامات الاقتباس. لشكل قانوني مستقر، شغّل JSON.stringify بمفاتيح مرتَّبة قبل اللصق.