محوّل JSON إلى YAML
حوّل JSON إلى YAML وYAML إلى JSON في متصفحك، مع دعم المراسي ومفاتيح الدمج والملفات متعددة المستندات. لا يُرفع أي شيء.
كيفية استخدام محوّل JSON إلى YAML
- اختر اتجاه التحويل: JSON → YAML أو YAML → JSON.
- الصق بياناتك، أو انقر فتح ملف لتحميل ملف
.jsonأو.yamlأو.yml(حتى 10 MB). - اختر المسافة البادئة (مسافتان أو 4 مسافات)، وفعّل إن شئت ترتيب المفاتيح أبجديًا.
- انقر تحويل، أو تابع الكتابة ببساطة: تتحدّث النتيجة تلقائيًا. وإذا كان الإدخال غير صالح، تحدد رسالة الخطأ رقم السطر والعمود حيث تقع المشكلة.
- انسخ النتيجة أو نزّلها. يعيد زر عكس الاتجاه الناتج إلى مربع الإدخال لتحويله في الاتجاه المعاكس.
JSON وYAML: البيانات نفسها بصياغة مختلفة
YAML عمليًا مجموعة شاملة لـJSON: فكل مستند JSON يصف بيانات يستطيع YAML التعبير عنها، ويضيف YAML صياغة أخف يسهل على البشر قراءتها وتعديلها. لهذا تُكتب عادةً ملفات Kubernetes وDocker Compose ومسارات GitHub Actions وGitLab CI ودفاتر Ansible ومواصفات OpenAPI بصيغة YAML، بينما تتبادل الواجهات البرمجية والبرامج بيانات JSON.
البيانات نفسها بالصيغتين:
{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
- 80
- 443
env:
DEBUG: false
من JSON إلى YAML
يكتب المحوّل YAML بأسلوب الكتل: مفتاح واحد في كل سطر، والقوائم بشرطات، والكائنات المتداخلة مزاحة. لا تُطوى السلاسل الطويلة أبدًا، وتستخدم السلاسل متعددة الأسطر الأسلوب الحرفي | لتبقى فواصل الأسطر كما هي تمامًا. أما السلاسل التي قد يقرؤها YAML على أنها نوع آخر فتُحاط بعلامات اقتباس: فتبقى "yes" و"1.0" و"null" سلاسل نصية بعد رحلة الذهاب والإياب. ويرتّب خيار ترتيب المفاتيح مفاتيح كل كائن أبجديًا، مما يسهّل مقارنة ملفَّي إعدادات.
من YAML إلى JSON
يُقرأ YAML وفق المخطط الأساسي لـYAML 1.2، وهي القواعد نفسها التي تتبعها معظم الأدوات الحديثة:
- تصبح
true/falseوالأرقام وnull(أو~) قيم JSON، بينما تبقىyesوnoوonوoffسلاسل نصية كما تشترط مواصفة YAML 1.2. - تُوسَّع المراسي والأسماء المستعارة (
&baseو*base)، وتُدعم مفاتيح الدمج (<<: *base) الشائعة في ملفات CI. - يصبح الملف الذي يضم عدة مستندات مفصولة بـ
---مصفوفة JSON فيها عنصر لكل مستند، وتخبرك رسالة بعدد المستندات المدمجة. - تُحذف التعليقات، إذ لا يدعم JSON التعليقات.
- ليس لـ
.infو.nanمقابل في JSON، فتُكتبان كسلسلتين نصيتين"Infinity"و"NaN".
لحماية متصفحك من ملفات «billion laughs» التي تتمدد فيها بضعة أسماء مستعارة إلى مليارات القيم، يُرفض أي مستند يتمدد إلى أكثر من مليون قيمة.
أخطاء YAML الشائعة
- علامات الجدولة في الإزاحة: لا يسمح YAML إلا بالمسافات.
- إزاحة غير متسقة: يجب أن تبدأ عناصر القائمة أو الكائن الواحد في العمود نفسه.
- غياب المسافة بعد النقطتين:
key:valueسلسلة نصية واحدة، بينماkey: valueزوج مفتاح وقيمة. - محارف خاصة دون علامات اقتباس: القيمة التي تبدأ بـ
@أو علامة الإسناد الخلفية أو*أو&أو!، أو التي تحتوي على:أو#، يجب إحاطتها بعلامات اقتباس.
الأسئلة الشائعة
هل يُرسل ملفي إلى خادم؟
لا. يجري التحويل في متصفحك، ولا تغادر ملفات الإعدادات أو الأسرار أو بيانات API جهازك أبدًا.
لماذا لا تتحول «yes» و«no» إلى قيم منطقية؟
منذ YAML 1.2، لم تعد القيم المنطقية سوى true وfalse. كانت محلّلات YAML 1.1 القديمة تعامل yes وno وon وoff كقيم منطقية، وهو ما سبّب «مشكلة النرويج» الشهيرة (رمز البلد NO يُقرأ على أنه false). تتبع هذه الأداة YAML 1.2.
هل تُحفظ تعليقات YAML؟
لا. لا يدعم JSON التعليقات، لذا تضيع عند التحويل YAML → JSON. وعند التحويل JSON → YAML يمكنك إضافة التعليقات إلى النتيجة لاحقًا.
هل يمكنني تحويل ملف Kubernetes يضم عدة موارد؟
نعم. يصبح كل مورد مفصول بـ--- عنصرًا في مصفوفة JSON. وعند تحويل هذه المصفوفة مجددًا إلى YAML تحصل على مستند واحد يحتوي على قائمة.
هل يغيّر المحوّل ترتيب المفاتيح؟
لا، إلا إذا فعّلت ترتيب المفاتيح: تحافظ المفاتيح على ترتيب ظهورها في إدخالك. والاستثناء الوحيد مصدره JavaScript نفسها: المفاتيح التي هي أعداد صحيحة، مثل "10" أو "2"، توضع أولًا بترتيب تصاعدي.
أدوات ذات صلة
- منسّق JSON ومدقّقه أداة مجانية لتنسيق JSON والتحقق من صحته: جمّل JSON واضغطه وافحصه في متصفحك، مع تحديد أخطاء الصياغة بالسطر والعمود.
- محوّل JSON إلى CSV حوّل JSON إلى CSV وCSV إلى JSON في متصفحك: تُسطَّح المفاتيح المتداخلة إلى أعمدة، ويُكتشف الفاصل تلقائيًا، ولا يُرفع أي شيء.
- محوّل JSON إلى XML حوّل JSON إلى XML وXML إلى JSON في متصفحك، مع معالجة السمات والعناصر المتكررة ومقاطع CDATA. لا يُرفع أي شيء إلى خادم.