الأدوات
AR

تحويل JSON إلى YAML والعكس

الصق JSON لتحصل على YAML نظيف وسهل القراءة لملفات الإعدادات أو ملفات manifest في Kubernetes أو خطوط CI – أو غيّر الاتجاه لتحويل YAML إلى JSON.

JSON

YAML

خصوصية تامة: تُعالَج بياناتك في متصفحك ولا تُرفع أبدًا.

كيفية تحويل JSON إلى YAML

  1. الصق JSON أو افتح ملفًا؛ يظهر YAML أثناء الكتابة. اختر مسافة بادئة من 2 أو 4 مسافات.
  2. للتحويل في الاتجاه المعاكس، غيّر الاتجاه إلى YAML → JSON والصق YAML.
  3. انسخ النتيجة أو نزّلها كملف .yaml أو .json.

JSON مقابل YAML

JSONYAML
البنيةأقواس معقوفة {} وأقواس مربعة []المسافة البادئة وعناصر القوائم بـ -
السلاسل النصيةدائمًا بين علامتي اقتباس مزدوجتينعلامات الاقتباس عند الحاجة فقط
التعليقاتغير مسموح بها# comment
النص متعدد الأسطرتسلسلات الهروب \nكتل حرفية باستخدام |
الاستخدام المعتادواجهات API وتبادل البياناتملفات الإعدادات

YAML 1.2 مجموعة شاملة لـ JSON، لذا فإن أي مستند JSON هو YAML صالح بالفعل. لكن المحوّل يكتب بدلًا من ذلك بنمط الكتل الأسهل في القراءة.

القيم التي يجب وضعها بين علامات اقتباس في YAML

بعض الكلمات غير المقتبسة يتغير نوعها في YAML: فـ yes و no و on و off قيم منطقية في محللات YAML 1.1، و 007 و 1e3 أرقام، و null أو ~ تعني null. وهذه هي «مشكلة النرويج» الشهيرة: يتحول رمز الدولة NO إلى false إذا لم يوضع بين علامات اقتباس. يضع المحوّل هذه السلاسل بين علامات اقتباس تلقائيًا، فيُقرأ YAML مجددًا كالبيانات نفسها تمامًا.

صيغ YAML المدعومة في التحويل YAML → JSON

يفهم المحلل صيغة YAML المستخدمة في ملفات الإعدادات وواجهات API: التعيينات والقوائم بنمط الكتل، والسلاسل النصية العادية والمقتبسة بعلامات مفردة ومزدوجة، والكتل متعددة الأسطر | و >، والمجموعات المضمّنة [ ] و { }، والتعليقات، وعلامة بداية المستند ---. أما المراسي (&) والأسماء المستعارة (*) والوسوم المخصصة فيُبلَّغ عنها كميزات غير مدعومة مع رقم السطر. ولا يُحوَّل إلا المستند الأول من الملف متعدد المستندات.

الأسئلة الشائعة

هل YAML مجموعة شاملة لـ JSON؟

صُمّم YAML 1.2 ليكون مجموعة شاملة لـ JSON، لذا فإن كل ملف JSON تقريبًا هو YAML صالح أيضًا. والعكس غير صحيح: ففي YAML تعليقات ومراسٍ وكتل متعددة الأسطر يفتقر إليها JSON.

هل تُحفظ التعليقات عند تحويل YAML إلى JSON؟

لا. لا يدعم JSON التعليقات، لذا تُحذف. أما المفاتيح والقيم وترتيبها فتُحفظ كما هي.

لماذا يُرفض ملف YAML الخاص بي؟

الأسباب المعتادة هي استخدام علامات Tab للمسافة البادئة (يسمح YAML بالمسافات فقط)، وعناصر القائمة أو التعيين نفسه التي لا تبدأ من العمود نفسه، وغياب المسافة بعد النقطتين. وتحدد رسالة الخطأ رقم السطر.

كيف تُحدَّد أنواع قيم YAML في JSON؟

وفقًا للمخطط الأساسي لـ YAML 1.2: تصبح true/false قيمًا منطقية، وتصبح null و ~ قيمة null، وتصبح الأرقام العادية أرقام JSON، بينما تبقى كلمات مثل yes سلاسل نصية. ضع الرموز مثل "007" بين علامات اقتباس في YAML للإبقاء عليها كنص.