JSON وYAML: منظوران للبيانات ذاتها
JSON وYAML كلاهما تنسيقات تسلسل بيانات تُمثّل نموذج البيانات الأساسي ذاته. YAML مجموعة شاملة لـ JSON (منذ YAML 1.2)، مما يعني أن كل مستند JSON صحيح هو أيضاً YAML صحيح.
يخدم التنسيقان حالات استخدام مختلفة. يُفضَّل JSON للتواصل بين الآلات (APIs وحمولات HTTP). يُفضَّل YAML لملفات الإعدادات التي يكتبها البشر (كـ Kubernetes manifests وGitHub Actions workflows) لأن صياغته المبنية على المسافات البادئة أسهل في القراءة.
التحويل بين الاثنين حاجة يومية للمطورين: تحويل ملف إعدادات YAML إلى JSON لاستدعاء API، أو استقبال استجابة JSON وإعادة هيكلتها كإعدادات YAML.
ما يتعامل معه المحول
JSON إلى YAML: تُعيَّن جميع أنواع قيم JSON إلى مكافئاتها في YAML — كائنات إلى تعيينات ومصفوفات إلى تسلسلات. يُحفظ ترتيب المفاتيح افتراضياً.
YAML إلى JSON: تُحذف التعليقات. تُحلّ المراسي والأسماء المستعارة — &مرساة و*اسم_مستعار يُوسَّعان كاملاً بشكل مضمّن. تتدفقات YAML متعددة الوثائق تُحوَّل إلى مصفوفة JSON.
تحويل آمن للأنواع: يتبع محولنا YAML 1.2 افتراضياً ويعامل "true" و"false" فقط كقيم منطقية. وضع توافق YAML 1.1 متاح للإعدادات القديمة.
ميزات YAML التي لا تنعكس في JSON
التعليقات: أسطر YAML التي تبدأ بـ # هي تعليقات. عند تحويل YAML إلى JSON تُحذف التعليقات إذ لا يوجد لها مكافئ في JSON.
المراسي والأسماء المستعارة: يتيح YAML تعريف عقدة بـ &اسم-المرساة والإشارة إليها بـ *اسم_المرساة. عند التحويل إلى JSON يُوسَّع الاسم المستعار كاملاً بشكل مضمّن.
أنواع الثنائي والطابع الزمني: تُحوَّل البيانات الثنائية إلى سلسلة base64 في JSON. تُسلسَل الطوابع الزمنية كسلاسل ISO 8601.