من JSON إلى YAML

قم بنسخ بيانات JSON واسترجع نص YAML النقي، مع تضمين تنسيق تبويب منطقي يتكون من مسافتين، ووضع علامات اقتباس على السلاسل النصية فقط عند الحاجة، وعرض القيم متعددة الأسطر كقيم متجانسة، بالإضافة إلى خيار فرز المفاتيح حسب الترتيب الأبجدي. يُعد هذا الأداة مفيدة لتحويل استجابات واجهات برمجة التطبيقات (API) إلى ملفات تعريف Kubernetes أو ملفات تكوين GitHub Actions أو أي أداة أخرى مصممة خصيصًا لاستخدام نص YAML.

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

  1. 1

    الصق JSON

    أي ملف JSON صالح؛ حيث يحافظ المحوّل على البنية الدلالية بدقة تامة.

  2. 2

    اختر التبويب والنمط

    مسافات 2 أو 4، بأسلوب التدفق للمصفوفات أو الكائنات المدمجة، أو بأسلوب الكتلة للنصوص الطويلة.

  3. 3

    اختياري: مفاتيح الترتيب

    يُسهّل الترتيب الأبجدي عملية مقارنة ملفات YAML بين إصدارين مختلفين.

  4. 4

    قم بنسخ ملف YAML.

    قم بلصق المحتوى في ملفك `.yaml` أو `.yml`؛ سيكون الناتج بصيغة YAML الصالحة وفق المواصفات الإصدارية 1.2.

مثال

المدخل:

{
  "name": "hyperion",
  "replicas": 3,
  "env": { "DEBUG": "false", "LOG_LEVEL": "info" },
  "command": ["php", "artisan", "queue:work"]
}

الناتج:

name: hyperion
replicas: 3
env:
  DEBUG: "false"
  LOG_LEVEL: info
command:
  - php
  - artisan
  - queue:work

تعيين الأنواع

JSON YAML
سلسلة نصية بدون علامات اقتباس، بين علامتي اقتباس، أو قيمة كتلية (block scalar) حسب الحاجة
عدد صحيح 42
رقم 3.14
قيمة منطقية true / false
null null (أو ~، أو فارغ)
مصفوفة تسلسل كتلي يحتوي على - أو تدفق [...]
كائن تعيين كتلي باستخدام key: value أو تدفق {...}

متى تحتاج السلاسل النصية إلى علامات اقتباس

يقوم YAML تلقائيًا بتفسير بعض السلاسل النصية على أنها غير نصية. يجب وضع علامات اقتباس حول القيم التي تبدو بهذه الطريقة:

القيمة لماذا نحتاج إلى الاقتباسات
yes، no، on، off يُفسَّر كقيم منطقية (توافق مع YAML 1.1)
null، Null، NULL يُفسَّر على أنه null
1.23 يُفسَّر كعدد
2026-04-18 يُفسَّر على أنه تاريخ
مسافات بيضاء في البداية أو النهاية سيتم حذفها
يبدأ بالرموز *، &، ! تعليمات YAML

يقوم المحول تلقائيًا بإدراج هذه العبارات بين علامتي الاقتباس، بينما يترك باقي العبارات دون علامتين للسهولة في القراءة.

الاختلافات في تصميم YAML مقارنةً بJSON

  • التعليقات: يحتوي تنسيق YAML على هذه الميزة (#)، بينما لا يحتوي تنسيق JSON عليه.
  • المرجعيات/الأسماء البديلة: يدعم تنسيق YAML الإشارات المتبادلة (مثل &anchor و*alias)؛ بينما يقوم تنسيق JSON بتكرار البيانات نفسها. لا يمكن لعملية التحويل استنتاج هذه المرجعيات تلقائيًا؛ لذا يجب إضافتها يدويًا إذا رغبت في ذلك.
  • سلاسل متعددة السطور: يحتوي تنسيق YAML على قيم متجهة من نوع “block scalar” (حيث يحافظ | على سطور الجديدة، بينما يدمجها >). ويستخدم المحول هذه القيم للسلاسل الطويلة.
  • تمثيل القيمة الصفرية: يسمح تنسيق YAML باستخدام القيم null أو ~ أو القيمة الفارغة؛ ويقوم المحول تلقائيًا بإنتاج القيمة null كقيمة افتراضية.

الأخطاء الشائعة

  • «مشكلة النرويج» في YAML 1.1. القيمة NO دون علامات اقتباس هي قيمة منطقية false في YAML 1.1. معظم المحلّلات الحديثة تستخدم YAML 1.2، حيث تكون true/false فقط قيمًا منطقية، لكن بعض الأدوات القديمة ما زالت تسبب مشكلات.
  • المسافات البيضاء في نهاية القيم. يحتفظ بها YAML في القيم الكتلية (block scalars) ويحذفها في القيم البسيطة؛ وقد يكون ذلك غير متوقع إذا لم تكن تعرف الشكل الذي حصلت عليه.
  • علامات الجدولة (tabs) في المسافة البادئة. يمنع YAML المسافة البادئة بعلامات الجدولة؛ استخدم المسافات دائمًا.
  • السلاسل النصية الطويلة جدًا في سطر واحد. قسّمها إلى قيم كتلية لتحسين القراءة؛ ويقوم المحوّل بذلك تلقائيًا عند تجاوز عتبة قابلة للضبط.

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

السلاسل النصية التي تشبه أنواع YAML الأخرى (مثل القيم المنطقية، والأرقام، وتاريخيات البيانات، وnull) تحتاج إلى علامات اقتباس للحفاظ على صيغتها كسلاسل نصية. كما تتطلب السلاسل التي تحتوي على أحرف خاصة (مثل الفراغات المقدمة أو الرموز غير القابلة للطباعة) استخدام علامات اقتباس أيضًا. يقوم المحول تلقائيًا باكتشاف هذه الحالات ووضع علامات اقتباس عند الحاجة.

يُستخدم YAML 1.2 بشكل افتراضي. إذا كنت بحاجة إلى توافق مع YAML 1.1 (مثل الأدوات القديمة أو بعض أنظمة التحقق المستمر)، فقم بتفعيل خيار “توافق YAML 1.1”، وسيقوم المحوّل بإضافة علامات اقتباس إضافية للقيم التي كانت تُعتبر من نوع القيمة المنطقية ( boolean) في الإصدار السابق (yes، no، on، off).

نعم، يتوفر نمط التدفق ([1, 2, 3] و{ a: 1 }) للمصفوفات والكائنات المدمجة. وتفضل معظم ملفات الإعداد نمط الكتل لتسهيل القراءة.

نعم، مع تحذير واحد فقط: غالبًا ما يعتمد ملف YAML الخاص بنظام K8s على تعليقات وعلامات توجيهية لا يمكن للتنسيق JSON التعبير عنها. لذا، قم بتحويل شكل البيانات ثم أضف التعليقات/العلامات التوجيهية يدويًا.

أدوات ذات صلة

الأداة متاحة بلغات أخرى