UltKit

تحويل JSON إلى YAML

أعد كتابة JSON بصيغة YAML يسهل على الناس قراءتها ومراجعتها والتعليق عليها. ارفع ملفات ‎.json واحصل على ملفات ‎.yaml بمسافات بادئة، بالمفاتيح والقيم والترتيب نفسها، جاهزة للإضافة إلى المستودع.

محوّل البيانات

أو أفلت ملفات CSV, TSV, TXT … هنا ·

الحد الأقصى 95 MB لكل ملف· حتى 20 ملفًا· تُحذف بعد 30 دقيقة

الإخراج

تُعالج الملفات على خوادمنا وتُحذف بعد 30 دقيقة.

طريقة استخدام هذه الأداة

  1. 1

    أضف ملفات JSON

    ارفع ردود API أو الإعدادات المصدَّرة أو ملفات manifest المولّدة بصيغة .json، حتى 20 ملفًا وبحجم أقصاه 95 MB لكل ملف. يجب أن يحتوي كل ملف على قيمة JSON واحدة صالحة.

  2. 2

    أبقِ الإعدادات الافتراضية

    الصيغة YAML محددة مسبقًا ضمن التحويل إلى. لا يلزم تغيير أي شيء آخر لملف الإعدادات؛ يستخدم الناتج مسافتين للإزاحة.

  3. 3

    حوّل الملفات وأضفها إلى المستودع

    اضغط تحويل إلى YAML، ثم نزّل ملفات .yaml، وأضف التعليقات حيث سيحتاجها القارئ التالي، ثم نفّذ commit.

الإجابة

كيف أحوّل JSON إلى YAML؟

ارفع ملف .json واضغط تحويل إلى YAML. تتحول الكائنات إلى كتل key: value بإزاحة، والمصفوفات إلى قوائم بشرطات، وتحتفظ السلاسل التي قد يسيء YAML قراءتها بعلامات اقتباسها.

لماذا تحويل JSON إلى YAML في ملفات الإعدادات

معظم JSON تنتجه البرمجيات: رد API أو تصدير إعدادات أو ناتج مولّد. ومعظم YAML يتولى البشر صيانته. يمثل التحويل عادةً اللحظة التي تتوقف فيها البيانات عن كونها ناتج آلة وتصبح ملكًا لفريق، مثل ملف نشر manifest محفوظ في Git أو خط CI أو مجموعة متغيرات Ansible.

حالة نموذجية: تستدعي API سحابيًا فتحصل على وصف JSON من 200 سطر لمورد، وتريد حفظه كشيفرة بنية تحتية. يمنحك التحويل ملفًا بلا أقواس معقوفة وفواصل، يعطي فيه تغيير سطر واحد فرقًا من سطر واحد، ويمكنك شرح القيم الغريبة في التعليقات. وينطبق الأمر نفسه على بيانات الاختبار وملفات الترجمة التي يعدّلها غير المطورين. وإن كنت تحتاج جدولًا مسطحًا لجدول بيانات أو تقرير، فـتحويل JSON إلى CSV أنسب.

أدوات تستخدم ملفات إعدادات بصيغة YAML

أين ينتهي عادةً ملف YAML المحوَّل
الجهةالمتطلبالمصدر
GitHub Actionsتوجد سير العمل في .github/workflows كملفات .yml أو .yamlوثائق GitHub
GitLab CI/CDيُعرَّف خط المعالجة في .gitlab-ci.yml في جذر المستودعوثائق GitLab
Docker Composeتُوصف الخدمات في compose.yaml (سابقًا docker-compose.yml)وثائق Docker
Ansibleتُكتب playbooks وملفات المتغيرات بصيغة YAMLوثائق Ansible
Kubernetesتقبل ملفات manifest صيغتي JSON وYAML؛ وتستخدم الوثائق ومخططات Helm صيغة YAMLKubernetes

مثال على تحويل JSON إلى YAML بقيم معقدة

ناتج YAML للمدخل {"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
name: api
version: "1.10"
debug: false
tags:
  - web
  - eu
country: "NO"  # بين علامتي اقتباس حتى لا تُقرأ قيمة منطقية

ما يقدمه YAML

  • تعليقات باستخدام #
  • فروق أقصر في مراجعة الشيفرة
  • لا أقواس معقوفة ولا فواصل ولا علامات اقتباس في معظم الأسطر
  • نص متعدد الأسطر باستخدام كتل | النصية

ما يجب الانتباه إليه

  • الإزاحة ذات معنى، لذا قد تغيّر مسافة زائدة البنية
  • لا يُسمح بعلامات Tab للإزاحة
  • قد تُقرأ السلاسل غير المقتبسة على أنها أرقام أو قيم منطقية
  • محللات أبطأ وأقل توحيدًا من محللات JSON

يوضح المثال لماذا لا يكفي استبدال الأقواس المعقوفة استبدالًا بسيطًا. الإصدار 1.10 سلسلة في JSON؛ ولو كُتب في YAML دون اقتباس لقُرئ على أنه الرقم 1.1. أما NO، رمز ISO للنرويج، فستقرؤه محللات YAML 1.1 مثل PyYAML على أنه false. يحتفظ كلاهما بعلامات الاقتباس، بينما تبقى الأرقام والقيم المنطقية الحقيقية دونها.

مقارنة بين JSON و YAML

JSON

ترميز كائنات JavaScript (JSON)

JSON تنسيق نصي خفيف للبيانات المنظمة، شاعه Douglas Crockford في أوائل الألفية، واعتُمد في RFC 8259 وECMA-404. يمثّل الكائنات والمصفوفات والنصوص والأرقام والقيم المنطقية وnull بصياغة بسيطة مقروءة. وهو التنسيق الافتراضي لواجهات الويب البرمجية وملفات الإعداد وتبادل البيانات بين التطبيقات في معظم لغات البرمجة. لا يتضمن تعليقات ولا تواريخ ولا مخططات، ويصعب قراءة الملفات الكبيرة المتداخلة دون عارض.

الضغط
–
الشفافية
–
الحركة
–
سنة الظهور
2001 · Douglas Crockford
محول JSON

YAML

YAML

YAML ("YAML Ain't Markup Language") تنسيق بيانات سهل القراءة للبشر صدر أول مرة عام 2001. يعتمد على المسافات البادئة بدل الأقواس ويدعم التعليقات وهو مجموعة شاملة لـ JSON. يُستخدم على نطاق واسع للإعدادات في Docker Compose وKubernetes وGitHub Actions وتطبيقات كثيرة. اعتماده على المسافات البيضاء يجعله سهل الكسر بمسافة واحدة في غير موضعها، وقد تُفسَّر بعض القيم مثل "no" أو التواريخ بشكل غير متوقع.

الضغط
–
الشفافية
–
الحركة
–
سنة الظهور
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
محول YAML

يحوّل الناس JSON إلى YAML عندما يجب أن تصبح بيانات مولّدة أو واردة من API ملف إعدادات يتولى البشر صيانته ومراجعته في pull requests وإضافة التعليقات عليه.

أسئلة حول تحويل JSON إلى YAML

هل JSON صالح أصلًا بوصفه YAML؟

في YAML 1.2 نعم: كُتب إصدار 2009 بحيث يكون كل مستند JSON مستند YAML أيضًا. يمكنك لصق JSON في ملف .yaml وستقبله معظم الأدوات. لكن التحويل يخدم سهولة القراءة: النمط الكتلي دون أقواس معقوفة وعلامات اقتباس وفواصل هو ما يتوقعه المراجعون والمشرف التالي على الملف.

لماذا تظهر بعض القيم بين علامات اقتباس في YAML؟

لأن YAML سيقرؤها دون علامات اقتباس على أنها نوع آخر. فسلسلة إصدار مثل 1.10 ستصبح الرقم 1.1، وقد تتحول yes أو off إلى قيم منطقية في المحللات الأقدم. السلاسل التي تشبه الأرقام أو التواريخ أو القيم المنطقية تحتاج إلى علامات اقتباس لتبقى سلاسل، لذلك يحتفظ بها التحويل الدقيق.

هل يمكنني إضافة تعليقات بعد التحويل؟

نعم، وهذا سبب شائع للتحويل. اكتب # ثم ملاحظتك في نهاية السطر أو في سطر مستقل. لا يتيح JSON شرح سبب ضبط قيمة ما، أما YAML فيتيح ذلك، مما يسهّل المراجعات وتسليم العمل.

لماذا يفشل ملف YAML بخطأ حرف الجدولة (Tab)؟

تمنع مواصفات YAML استخدام علامات الجدولة (Tab) للإزاحة؛ المسافات وحدها معتمدة. يكتب المحوّل مسافات، لكن محررًا مضبوطًا على إدراج Tab قد يُفسد الملف عند التعديل التالي. اضبط محررك على استخدام المسافات في ملفات .yaml.

هل سيقبل Kubernetes ملف البيان المحوَّل؟

يقرأ kubectl كلًّا من JSON وYAML، فالبيانات واحدة في الحالتين؛ ونسخة YAML هي ما تستخدمه معظم الوثائق ومخططات Helm ومراجعات الشيفرة. وإذا احتجت لاحقًا إلى JSON لاستخدامه مع jq أو استدعاء API، فإن تحويل YAML إلى JSON يعكس العملية.