UltKit

تحويل YAML إلى JSON

حوّل ملفات إعداد YAML ومواصفات OpenAPI وملفات CI إلى JSON يقرؤه أي محلل أو واجهة برمجية أو أداة تحقق من المخطط. ارفع ملفات .yaml أو .yml ونزّل JSON بمسافات بادئة.

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

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

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

الإخراج

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

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

  1. 1

    ارفع ملفات YAML

    أضف ملفات .yaml أو .yml، حتى 20 ملفًا دفعة واحدة وبحجم أقصاه 95 MB لكل ملف. أبقِ الأسماء الأصلية؛ ستحمل ملفات JSON الأسماء نفسها بامتداد جديد.

  2. 2

    اختر التنسيق بمسافات بادئة أو المضغوط

    خيار تنسيق مقروء مفعّل، وهو يضيف مسافات بادئة إلى JSON ليسهل قراءته ومراجعته. أوقفه من الإعدادات المتقدمة للحصول على ملف في سطر واحد يمكنك لصقه في جسم الطلب.

  3. 3

    حوّل واستخدم الملف

    اضغط التحويل إلى JSON، ثم نزّل الملف وسلّمه إلى الواجهة البرمجية أو أداة التحقق أو السكربت الذي احتاج إليه.

لماذا يحوّل المطورون YAML إلى JSON

كُتب YAML للبشر: مسافات بادئة بدل الأقواس، وتعليقات، ودون علامات اقتباس حول معظم النصوص. لذلك هو صيغة ملفات Kubernetes وسير عمل GitHub Actions وملفات Docker Compose ومواصفات OpenAPI التي تعدّلها الفرق يدويًا. أما JSON فمكتوب للبرامج. لكل لغة محلل JSON في مكتبتها القياسية، وتقرؤه المتصفحات أصلًا، ومعظم واجهات HTTP لا تقبل غيره.

لذلك يحدث التحويل عند الحدود بين الأنظمة. يمرّر مهندس المنصة ملف manifest عبر jq الذي يقرأ JSON فقط. ويرسل مطور الخلفية مواصفات OpenAPI إلى مولّد أكواد يريد JSON. ويحمّل المختبِر بيانات اختبار مكتوبة بـ YAML في مجموعة اختبارات JavaScript. في كل حالة يبقى YAML مصدر الحقيقة ويكون JSON ناتج بناء. وإذا كان لديك مجلد كامل من الخلاصات أو ملفات التصدير بدل ملفات الإعدادات، فإن تحويل XML إلى JSON يعالج صيغة الترميز الأقدم بالطريقة نفسها.

كيف تطورت YAML و JSON معًا

أول اقتراح لـ YAML من Clark Evans
2001
جعل YAML 1.2 صيغة JSON مجموعة جزئية من YAML
2009
RFC 8259، معيار JSON الحالي
2017
نشر مراجعة YAML 1.2.2
2021

ماذا يحدث لميزات YAML غير الموجودة في JSON

يتيح المرساة (&defaults) ومراجعها (*defaults) في YAML إعادة استخدام كتلة. لا يعرف JSON المراجع، فيُستبدل كل مرجع بنسخة كاملة من الكتلة المرتبطة بالمرساة.

  • قد يكون JSON أطول من YAML بشكل ملحوظ
  • تُوسَّع مفاتيح الدمج (<<: *defaults) بالطريقة نفسها
ملف إعدادات YAML صغير بصيغة JSON مقروءة
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

حقائق عن صيغتي YAML و 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

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

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

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

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

الأسئلة الشائعة عن تحويل YAML إلى JSON

لماذا أحوّل YAML إلى JSON ما دامت البيانات نفسها؟

لأن كثيرًا من الأدوات لا تقرأ سوى أحدهما. قارئات JSON مضمّنة في كل لغة برمجة وكل متصفح، بينما يحتاج YAML إلى مكتبة إضافية. أجسام طلبات واجهات REST ومدققات JSON Schema وأداة jq وملفات مثل package.json أو manifest.json لإضافة المتصفح، كلها تتوقع JSON.

ماذا يحدث للتعليقات في ملف YAML؟

تُحذف. فمعيار RFC 8259 لا يتضمن صيغة للتعليقات في JSON، فلا مكان للأسطر التي تبدأ بـ #. احتفظ بملف YAML مصدرًا موثّقًا واعتبر JSON نسخة مولّدة يمكنك إعادة توليدها في أي وقت.

لماذا تحولت NO أو off إلى false؟

المحللات التي تتبع YAML 1.1 تقرأ yes وno وon وoff قيمًا منطقية، لذا قد يتحول رمز دولة مثل NO للنرويج إلى false. يقصر YAML 1.2 القيم المنطقية على true وfalse، لكن ليست كل الأدوات تلتزم به. ضع هذه القيم بين علامتي اقتباس في YAML، مثل "NO"، لتبقى نصوصًا في JSON.

هل يمكنني تحويل قالب CloudFormation مكتوب بصيغة YAML؟

يقبل AWS CloudFormation الصيغتين، لكن الوسوم المختصرة مثل !Ref و!GetAtt موجودة في YAML فقط. تكتبها قوالب JSON دوالَّ كاملة، {"Ref": "MyBucket"} أو {"Fn::GetAtt": [...]}. أعد كتابة الوسوم المختصرة بالصيغة الطويلة قبل التحويل ليبقى قالب JSON صالحًا.

كيف أحوّل في الاتجاه المعاكس؟

استخدم تحويل JSON إلى YAML. هذا هو الاتجاه المعتاد عندما تتحول استجابة واجهة برمجية أو ملف مولّد إلى ملف إعدادات مقروء في مستودع.