esc
YAML → JSON

تحويل ⁦YAML⁩ إلى ⁦JSON⁩:
المحوّل

تحويل ⁦YAML⁩ إلى ⁦JSON⁩ مجانًا وبخصوصية وفي لحظات.

عكس الترتيب JSON → YAML

كيفية تحويل تحويل ⁦⁦YAML⁩⁩ إلى ⁦⁦JSON⁩⁩

  1. 01أضف ملفات ⁦YAML⁩اختر الملفات أو أفلتها على الصفحة.
  2. 02التحويل على جهازكلا يُرفع أي شيء. عدّل الإعدادات إن أردت.
  3. 03تنزيلاحفظ كل ملف على حدة، أو كلها في ملف ⁦ZIP⁩ واحد.
شخصية ملف ترتّب أقواسًا متداخلة في صفوف

ما هو ⁦YAML⁩؟

صيغة إعداد سهلة القراءة تستخدمها ⁦Docker⁩ و⁦Kubernetes⁩ وأدوات ⁦CI.⁩

YAMLإعدادات مقروءة
JSONبيانات متداخلة

حوّل ⁦YAML⁩ إلى ⁦JSON⁩ عندما يحتاج سكربت أو واجهة ⁦API⁩ أو أداة إلى ⁦JSON:⁩ ملف ⁦Kubernetes⁩، أو ملف ⁦Docker Compose⁩، أو مسار ⁦CI⁩، أو مواصفات ⁦OpenAPI⁩ تريد قراءتها في الكود. أفلت ملف .⁦yaml⁩ أو .⁦yml⁩، واختر المسافة البادئة، فيُبنى ⁦JSON⁩ في متصفحك، وبذلك لا تغادر ملفات الإعدادات التي تحتوي على أسماء خوادم داخلية أو مفاتيح جهازك أبدًا.

كيف يبدو ملف ⁦JSON⁩

تصبح الخرائط (⁦mappings)⁩ كائنات، وتصبح القوائم مصفوفات، وتحافظ المفاتيح على ترتيبها. فالملف الذي يحتوي على ⁦name: web⁩ و⁦replicas: 3⁩ وقائمة ⁦ports⁩ فيها - ⁦80⁩ و- ⁦443⁩ يصبح {"⁦name⁩": "⁦web⁩", "⁦replicas⁩": ⁦3,⁩ "⁦ports⁩": [⁦80, 443⁩]}.

يُعامَل النص متعدد الأسطر بطريقة ⁦YAML.⁩ الكتلة الحرفية (|) تحتفظ بفواصل الأسطر، وتظهر بالشكل \⁦n⁩ داخل نص ⁦JSON.⁩ أما الكتلة المطوية (>) فتضم أسطرها بمسافات.

يتيح لك إعداد «المسافة البادئة» مسافتين (الافتراضي)، أو ⁦4⁩ مسافات، أو «مضغوط» الذي يضع كل شيء في سطر واحد لأصغر حجم ممكن.

القيم المنطقية والتواريخ والأرقام تتبع ⁦YAML 1.2⁩

تستخدم أدوات ⁦YAML⁩ القديمة قواعد الإصدار ⁦1.1⁩، حيث تحمل كثير من الكلمات العادية معنى خاصًا. أما هذا المحوّل فيتبع قواعد ⁦YAML 1.2⁩ الأحدث، وهي أكثر صرامة وغالبًا ما تكون ما تريده:

  • تبقى ⁦yes⁩ و⁦no⁩ و⁦on⁩ و⁦off⁩ نصوصًا. فقط ⁦true⁩ و⁦false⁩ تصبحان قيمًا منطقية في ⁦JSON.⁩
  • تبقى التواريخ نصوصًا، فيخرج ⁦2024-01-15⁩ بالشكل "⁦2024-01-15⁩" بدلًا من طابع زمني.
  • تصبح الأرقام أرقامًا في ⁦JSON⁩، وقد يفاجئك هذا: رقم إصدار بلا علامات تنصيص مثل ⁦1.10⁩ يصبح ⁦1.1⁩، و⁦012⁩ يصبح ⁦12.⁩ ضع القيم مثل أرقام الإصدارات والرموز البريدية بين علامات تنصيص لتبقى كما كُتبت تمامًا.
  • يُقرأ ⁦0x1F⁩ رقمًا ست عشريًا (⁦31).⁩
  • كل من ~ و⁦null⁩ والقيمة الفارغة (⁦key:)⁩ يصبح ⁦null.⁩
  • الأعداد الصحيحة الأكبر من نحو ⁦9⁩ كوادريليون تفقد دقتها، كما يحدث في أي مكان في ⁦JavaScript.⁩

المراسي ومفاتيح الدمج والمستندات المتعددة

  • تُوسَّع المراسي والأسماء المستعارة (&⁦base⁩ و*⁦base).⁩ يصبح كل اسم مستعار نسخة كاملة من القيمة المرتبطة بالمرساة، لأن ⁦JSON⁩ لا يدعم المراجع.
  • مفاتيح الدمج (<<: *⁦base)⁩، الشائعة في ملفات ⁦Docker Compose⁩ و⁦CI⁩، لا تُدمج. بل تظهر مفتاحًا حرفيًا اسمه "<<" يحمل القيم المرتبطة بالمرساة، لذا راجع الناتج إن كان ملفك يستخدمها.
  • الملف الذي يحتوي على عدة مستندات يفصل بينها --- يصبح مصفوفة ⁦JSON⁩ فيها إدخال واحد لكل مستند، وهذا يناسب ملفات ⁦Kubernetes⁩ التي تعرّف عدة موارد. أما المستند الواحد فيصبح كائنًا عاديًا.
  • تُحذف التعليقات، لأن ⁦JSON⁩ لا يستطيع حملها. والملف الذي لا يحتوي إلا على تعليقات ينتج ⁦null.⁩

الأخطاء وطريقة إصلاحها

للعودة، تعيد أداة ⁦JSON⁩ إلى ⁦YAML⁩ بناء ⁦YAML⁩ مقروء، مع أن التعليقات والمراسي من الملف الأصلي لا يمكن استعادتها.

  • «هذا ليس ⁦YAML⁩ صالحًا (السطر ⁦4⁩، العمود ⁦3)⁩». تشير الرسالة إلى الموضع الذي توقف عنده التحليل. انظر إلى ذلك السطر والسطر الذي فوقه.
  • علامات الجدولة (⁦Tab).⁩ لا يسمح ⁦YAML⁩ إلا بالمسافات للإزاحة، وتُرفض علامة الجدولة. استبدل علامات الجدولة بمسافات في محرّرك.
  • المفاتيح المكررة. وجود مفتاحين متطابقين في الخريطة نفسها خطأ هنا، بدلًا من أن يفوز الأخير بصمت.
  • الإزاحة غير المتسقة. يجب أن تصطف عناصر القائمة أو الخريطة الواحدة بدقة.

نظرة سريعة

السعر
مجاني. بلا تسجيل وبلا علامة مائية.
الخصوصية
تُعالَج الملفات في متصفحك ولا تُرفع أبدًا.
يقبل
YAML, YML
ستحصل على
JSON
دفعة
حوّل ملفات كثيرة دفعة واحدة ونزّلها في ملف ⁦ZIP⁩
يعمل على
⁦Chrome⁩ و⁦Edge⁩ و⁦Firefox⁩ و⁦Safari⁩، على الهواتف والحواسيب
دون اتصال
بعد أول تحويل، يواصل العمل دون إنترنت

الأسئلة

هل تُرفع ملفاتي؟

أبدًا. يجري تحويل ⁦YAML⁩ إلى ⁦JSON⁩ داخل متصفحك، فتبقى ملفاتك على جهازك.

هل يمكنني تحويل عدة ملفات دفعة واحدة؟

نعم. أضف ما تشاء من الملفات ونزّلها كلها في ملف ⁦ZIP⁩ واحد.

هل يوجد حد لحجم الملف؟

الملفات التي تبلغ عشرات الميغابايت لا مشكلة فيها على معظم أجهزة الكمبيوتر.

لماذا بقيت «⁦on⁩» أو «⁦yes⁩» نصًا؟

يتبع المحوّل ⁦YAML 1.2⁩، حيث لا توجد قيم منطقية سوى ⁦true⁩ و⁦false.⁩ غيّر القيمة إلى ⁦true⁩ أو ⁦false⁩ إن كنت تقصد قيمة منطقية.

هل يمكنه تحويل ملف يحتوي على عدة موارد ⁦Kubernetes⁩؟

نعم. المستندات التي يفصل بينها --- تصبح مصفوفة، فيها إدخال واحد لكل مورد.

هل تُقبل ملفات .⁦yml⁩ و.⁦yaml⁩ كلاهما؟

نعم. إنهما الصيغة نفسها بامتدادين شائعين.

هل يتحقق من صلاحية ملف ⁦YAML⁩؟

نعم. يُرفض ⁦YAML⁩ غير الصالح مع ذكر السطر والعمود اللذين وُجدت فيهما المشكلة.