من YAML إلى JSON
يُعد كتابة ملفات YAML يدويًا أكثر سهولة، بينما يُفضل استخدام JSON في الاستخدام البرمجي، وتقبل العديد من الأدوات الحديثة (مثل خطوط إنتاج التحقق المسبق، وكوبيرنيتيس، وأنسيبل) كلا التنسيقيين معًا. عندما تحتاج إلى إدخال بيانات التكوين في أداة تتطلب استخدام JSON فقط، مثل تعريفات بوابات واجهة برمجة التطبيقات، أو قوالب كلاودفورميشن، أو بعض أجسام الويب هوك، فإن هذا المحول يقوم بالتحويل ذهابًا وإيابًا بين التنسيقين. كما تُحوَّل العناصر الأساسية مثل الروابط (Anchors)، والدمج (Merges)، والنوعيات الخاصة بـ YAML (مثل التواريخ، والأرقام الثمانية، وnull و~) إلى صيغ مكافئة في JSON بشكل تلقائي.
كيفية تحويل YAML إلى JSON
-
1
لصق ملف YAML
أي مستند صالح من تنسيق YAML إصدار 1.1 أو 1.2.
-
2
حل روابط الملفات
تُعرض الرموز الأساسية (`&x`) والرموز البديلة (`*x`) بشكل موسّع داخل نفس السطر، بينما تُسطح مفاتيح الدمج (`<<`).
-
3
تصحيح أنواع البيانات
تُحوَّل جميع التواريخ والقيم الفارغة والقيم المنطقية إلى نظيراتها في تنسيق JSON.
-
4
نتائج المخرج (JSON)
سواء كان مطبوعًا بدقة عالية أو مصغَّرًا، حسب اختيارك.
مثال على عملية التحويل
YAML:
defaults: &defaults
timeout: 30
retries: 3
production:
<<: *defaults
host: prod.example.com
debug: false
staging:
<<: *defaults
host: staging.example.com
debug: true
JSON (تم حل الروابط فيه):
{
"defaults": {
"timeout": 30,
"retries": 3
},
"production": {
"timeout": 30,
"retries": 3,
"host": "prod.example.com",
"debug": false
},
"staging": {
"timeout": 30,
"retries": 3,
"host": "staging.example.com",
"debug": true
}
}
تعيين الأنواع
| YAML | JSON |
|---|---|
| سلسلة نصية | سلسلة نصية |
| عدد صحيح | رقم |
| عدد عشري | رقم |
قيمة منطقية (true، false) |
قيمة منطقية |
فارغ (null، ~، خالٍ) |
null |
| طابع زمني | سلسلة ISO 8601 |
| تسلسل (قائمة) | مصفوفة |
| تعيين | كائن |
جوانب خاصة بـ YAML لا يمكن لتنسيق JSON تمثيلها
- التعليقات: لا يحتوي تنسيق JSON على صيغة قياسية للتعليقات؛ وبالتالي تُستبعد التعليقات تلقائيًا.
- تيارات المستندات المتعددة (باستخدام علامات الفصل
---): يحتوي ملف JSON على مستند واحد لكل ملف؛ أما عند وجود عدة مستندات، فإن المحول يُنتج مصفوفة من هذه المستندات. - المرجعيات والأسماء البديلة: تم حلها وتكرارها داخل السطر نفسه.
- المفاتيح المعقدة (مفاتيح التعيين غير النصية): يجب أن تكون مفاتيح JSON نصوصًا؛ وتُحوَّل المفاتيح المعقدة إلى نصوص.
فخ الإصدار 1.1 مقابل الإصدار 1.2
- يقوم YAML 1.1 بتحليل القيم
yes،no،on،off،y، وnعلى أنها قيم منطقية (bool values)، بينما يتم تحويل القيمةNOتلقائيًا إلى رمز دولة وهوfalseدون إشعار. - يقتصر تنسيق YAML 1.2 على القيم المنطقية من نوعين فقط هما
trueوfalse؛ وهو أكثر أمانًا، لكن العديد من أدوات تحليل البيانات (بما في ذلك الإعداد الافتراضي في PyYAML) ما زالت تستخدم الإصدار 1.1.
يعتمد المحول بشكل افتراضي على دلالات الإصدار 1.2، ويُصدر تنبيهًا عندما يكون استخدام الإصدار 1.1 سيؤدي إلى تغيير النتيجة.
رحلة ذهاب وإياب من JSON إلى YAML
عادةً ما يكون التحويل من JSON إلى YAML خاليًا من فقدان البيانات (حيث يُعد JSON مجموعة فرعية من صيغة YAML 1.2)، بينما يكون التحويل العكسي من YAML إلى JSON مع خسارة بيانات؛ إذ تختفي التعليقات وهيكل مفتاح الدمج. إذا كنت تخطط لإجراء هذا التحوّل ذهابًا وإيابًا، فيجب الحفاظ على النسخة الأصلية من YAML ضمن نظام التحكم بالنسخ.
الأسئلة الشائعة
لا، لهذه العناصر قوالب خاصة تُنفَّذ قبل تحليل ملف YAML؛ قم أولًا بعرض القالب (باستخدام kustomize build أو helm template)، ثم أدخل الناتج هنا.
تصبح تواريخ التوقيت في YAML عبارة عن سلاسل نصية وفق معيار ISO 8601 في تنسيق JSON؛ فمثلاً، يصبح 2026-04-18 هو "2026-04-18". كما يتم الحفاظ على تواريخ الوقت والمناطق الزمنية دون تغيير.
الحد العملي في المتصفح يبلغ حوالي 10 ميغابايت؛ ولملفات أكبر حجمًا، استخدم yq أو python -c "import yaml, json; print(json.dumps(yaml.safe_load(open(file))))" في سطر الأوامر.
لا: عملية التحويل تتم مباشرةً في متصفحك دون إرسال أي بيانات.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
عدّاد FPS
قِس معدل الإطارات FPS في المتصفح عبر requestAnimationFrame: تنعيم، وأدنى وأقصى معدل إطارات، وحد تنبيه، ورسم بياني اختياري. يعمل محليًا بلا رفع ملفات وبلا API.
أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator)
إزالة التشفير من كود جافا سكريبت مُصغَّر أو مُعبَّأ باستخدام إعادة تسمية المتغيرات، وفك ترميز السلاسل النصية ومصفوفات البيانات، بالإضافة إلى عكس تسطيح تدفق التحكم وتحسين هيكله.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
مولد تراخيص
قم بإنشاء النص الكامل لترخيصات المصدر المفتوح مع إدخال اسمك والسنة المقابلة، ويشمل ذلك تراخيص MIT وApache 2.0 وGPLv3 وBSD-3 وMPL-2.0 وCC.
الأداة متاحة بلغات أخرى
- YAML zu JSON [DE]
- YAML para JSON [PT]
- Chuyển đổi từ YAML sang JSON [VI]
- YAML till JSON [SV]
- YAML ถึง JSON [TH]
- YAML ke JSON [ID]
- YAML → JSON [KO]
- YAML a JSON [ES]
- YAMLからJSONへ [JA]
- YAML en JSON [FR]
- YAML naar JSON [NL]
- YAML do JSON [PL]
- YAML in JSON [IT]
- От YAML к JSON [RU]
- YAML'dan JSON'a [TR]
- YAML 转 JSON [ZH]
- YAML to JSON [EN]