طريقة الاستخدام
- الصق JSON في نص JSON.
- اختر الإزاحة التي تريدها. ومسافتان هما الخيار المعتاد لملفات YAML.
- اقرأ الصحة. وإن ذكرت سطراً وعموداً، فأصلح JSON هناك أولاً.
- انسخ نص YAML، أو نزّله ملفاً باسم data.yaml.
كيف يصبح JSON بصيغة YAML
تسعى مواصفة YAML 1.2 إلى أن يكون YAML مجموعة أعلى صارمة من JSON، فنص JSON الصالح يكون بيانات YAML صالحة. ويحافظ التحويل على البيانات نفسها، ويغيّر طريقة كتابتها فقط. يصبح الكائن أسطراً بالصيغة اسم: قيمة، وتصبح المصفوفة قائمة بشرطة قبل كل عنصر، ويظهر التداخل بالإزاحة بدلاً من الأقواس.
- تحتفظ النصوص والأعداد وtrue وfalse وnull بقيمها. والنص الذي يقرؤه YAML كنوع آخر، مثل ”true“ أو ”123“، يُكتب بين علامتي اقتباس حتى يبقى نصاً.
- يبقى التاريخ مثل 2026-11-10 نصاً عادياً، لأن YAML 1.2 لا يقرأه كتاريخ. ولا تُقرأ yes وon كقيمتين منطقيتين، لأن YAML 1.2 يقرأ true وfalse فقط كقيمتين منطقيتين.
الأعداد والأسماء وأسطر النص
تحتفظ الأعداد الصحيحة بكل أرقامها: يُكتب 12345678901234567890 كما كُتب تماماً. ويُكتب العدد العشري كأقرب عدد في JavaScript، فيصبح 1.50 هو 1.5 بالقيمة نفسها. وقد تتغير الأرقام الأخيرة لعدد عشري فيه أكثر من 15 رقماً معنوياً تقريباً.
تحتفظ الأسماء بالترتيب الذي تملكه في JSON، بما فيها أسماء مثل 2024 التي كانت ستنتقل إلى الأمام في كائن JavaScript. ويُكتب النص الذي فيه فواصل أسطر كتلة، فيبقى كل سطر منه في سطره.
مثال محلول: JSON الافتراضي
JSON الافتراضي كائن واحد فيه خمسة أسماء: name وfree وtags وversion وlicense. والقائمة تحت tags تصبح قائمة YAML، بشرطة ومسافتين قبل كل عنصر.
مع مسافتين للإزاحة تكون النتيجة الأسطر الثمانية في الجدول، وتُقرأ كالبيانات نفسها.
| السطر | YAML المكتوب |
|---|---|
| 1 | name: FireToolLand |
| 2 | free: true |
| 3 | tags: |
| 4 | - json |
| 5 | - csv |
| 6 | - yaml |
| 7 | version: 2.1 |
| 8 | license: null |
الأسئلة الشائعة
هل YAML هو JSON نفسه؟
ليس تماماً، لكن مواصفة YAML 1.2 تسعى إلى أن يكون YAML مجموعة أعلى صارمة من JSON، فتبقى البيانات سليمة بعد التحويل. ويستخدم YAML الإزاحة بدلاً من الأقواس، فيسهل قراءته باليد.
لماذا توضع بعض النصوص بين علامتي اقتباس في YAML؟
النص الذي يقرؤه YAML كنوع آخر، مثل ”true“ أو ”123“ أو ”null“، يُكتب بين علامتي اقتباس حتى يبقى نصاً. وتُكتب النصوص الأخرى بلا اقتباس.
هل تتغير الأرقام؟
تحتفظ الأعداد الصحيحة بكل أرقامها، فيبقى 12345678901234567890 كما هو. ويُكتب العدد العشري كأقرب عدد، فيصبح 1.50 هو 1.5 بالقيمة نفسها.
لماذا مسافتان أو أربع مسافات للإزاحة؟
يُظهر YAML التداخل بالمسافات لا بعلامات التبويب. ومسافتان تجعلان الملف أقصر، وأربع مسافات تجعلانه أعرض، وكلاهما يُقرآن كالبيانات نفسها، فاختر الأسلوب الذي يستخدمه مشروعك.
لماذا يُرفض اسم يظهر مرتين في كائن واحد؟
يحمل الكائن في YAML قيمة واحدة لكل اسم، فستضيع القيمة الثانية دون أي تنبيه. تطلب الأداة منك حذف الاسم المكرر بدلاً من أن تخمّن القيمة التي تُبقى.
هل يُرفع JSON الذي ألصقه إلى أي مكان؟
لا. يعمل التحويل في متصفحك بمكتبة yaml، ولا يُرسل ما تلصقه إلى خادمنا.
المصادر
- YAML Ain't Markup Language (YAML) revision 1.2.2 (باللغة الإنجليزية)
- RFC 8259 (باللغة الإنجليزية): The JavaScript Object Notation (JSON) Data Interchange Format
- yaml (باللغة الإنجليزية): the JavaScript YAML library used by this tool
آخر مراجعة للأرقام والنص: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة.