من JSON إلى YAML
قم بنسخ بيانات JSON واسترجع نص YAML النقي، مع تضمين تنسيق تبويب منطقي يتكون من مسافتين، ووضع علامات اقتباس على السلاسل النصية فقط عند الحاجة، وعرض القيم متعددة الأسطر كقيم متجانسة، بالإضافة إلى خيار فرز المفاتيح حسب الترتيب الأبجدي. يُعد هذا الأداة مفيدة لتحويل استجابات واجهات برمجة التطبيقات (API) إلى ملفات تعريف Kubernetes أو ملفات تكوين GitHub Actions أو أي أداة أخرى مصممة خصيصًا لاستخدام نص YAML.
كيفية تحويل بيانات JSON إلى YAML
-
1
الصق JSON
أي ملف JSON صالح؛ حيث يحافظ المحوّل على البنية الدلالية بدقة تامة.
-
2
اختر التبويب والنمط
مسافات 2 أو 4، بأسلوب التدفق للمصفوفات أو الكائنات المدمجة، أو بأسلوب الكتلة للنصوص الطويلة.
-
3
اختياري: مفاتيح الترتيب
يُسهّل الترتيب الأبجدي عملية مقارنة ملفات YAML بين إصدارين مختلفين.
-
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 التعبير عنها. لذا، قم بتحويل شكل البيانات ثم أضف التعليقات/العلامات التوجيهية يدويًا.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
مدقق البريد الإلكتروني
تحقق من عنوان بريد إلكتروني: فحص صياغة RFC 5322، واستعلام حي عن سجل MX، بالإضافة إلى تفاصيل الجزء المحلي والنطاق والطول. لا يتم إرسال أي بريد.
مولد EditorConfig
أنشئ ملف .editorconfig بقواعد نمط المسافة البادئة وحجمها ونهاية السطر ومجموعة الأحرف والمسافات البيضاء، لتنسيق موحّد عبر بيئات التطوير المتكاملة (IDEs) والمحررات.
منسق HTML
نسّق HTML محلياً في المتصفح بمسافة بادئة من مسافتين أو أربع مسافات. لا يُرفع HTML ولا يُتحقق منه.
الأداة متاحة بلغات أخرى
- JSON vers YAML [FR]
- JSON till YAML [SV]
- JSON เป็น YAML [TH]
- JSON ke YAML [ID]
- Chuyển đổi JSON sang YAML [VI]
- JSON → YAML [KO]
- JSON zu YAML [DE]
- JSON a YAML [ES]
- JSON naar YAML [NL]
- JSON do YAML [PL]
- JSONからYAMLへ [JA]
- JSON para YAML [PT]
- JSON в YAML [RU]
- JSON'ten YAML'a [TR]
- JSON 至 YAML [ZH]
- JSON to YAML [EN]
- JSON a YAML [IT]