SS Toolbox
SS Toolbox
يتم معالجة جميع البيانات محليًا

YAML إلى JSON وJSON إلى YAML — محوّل لا يحفظ التعليقات

حوّل ملفات YAML الخاصة بـ Kubernetes وdocker-compose وGitHub Actions إلى JSON والعكس داخل المتصفح. هذه إعادة تسلسل وليست تحويلًا عكسيًا بلا فقدان: تُفقد التعليقات والمراسي والمستندات المتعددة، وتُفسَّر القيم غير المقتبسة وفق قواعد أنواع YAML.

ما يفعله هذا المحوّل وما يفقده

  1. اتجاهان، وزر لكل اتجاه

    YAML → JSON وJSON → YAML عمليتان منفصلتان. تُستبدل النتيجة المحرر الآخر ولا تُدمج مع النص الموجود.

  2. التعليقات تُفقد دائمًا

    تُحذف تعليقات YAML عند التحليل، ولا يحتوي YAML الناتج على تعليقات. وJSON لا يملك أصلًا صياغة للتعليقات.

  3. المراسي تُفكّ، والمستندات المتعددة تفشل

    تُحل أزواج &anchor / *alias إلى كائنات مكررة. والملف الذي يحتوي عدة مستندات --- يُرفض بدل أن يُدمج.

  4. القيم تتبع قواعد أنواع YAML 1.2

    1.0 غير المقتبس يصبح 1، و2024-01-01 يصبح سلسلة وقت ISO، و.inf / .nan يصبحان null. استخدم علامات الاقتباس لإبقاء القيمة نصًا.

  5. يعمل محليًا، مع اختيار ملف وتنزيل

    تُقرأ الملفات في المتصفح ولا يُرفع أي شيء. لا يوجد حد صارم للحجم، لكن الملف الكبير جدًا يجمّد علامة التبويب أثناء التحويل.

أسئلة شائعة حول تحويل YAML ↔ JSON

هل التحويل ثنائي الاتجاه؟

نعم، زر لكل من YAML → JSON وJSON → YAML. لكن كل اتجاه يعيد تسلسل البيانات، لذا لا تُحفظ التعليقات والتنسيق والمراسي. YAML الناتج يستخدم مسافة بادئة من مسافتين ويكسر السلاسل الطويلة عند 80 عمودًا؛ ولا توجد خيارات للبادئة أو الترتيب.

هل يمكن الحفاظ على التعليقات؟

لا. يُسقط محلل YAML التعليقات ولا يضيفها YAML الناتج؛ وJSON لا يملك صياغة تعليقات. اجعل الملف المعلّق مصدر الحقيقة، واعتبر الناتج بيانات مشتقة.

هل تُدعم المراسي والأسماء البديلة والمستندات المتعددة؟

تُحل المراسي والأسماء البديلة وتُكتب كقيم مكررة. المستندات المتعددة (عدة كتل ---) تُرفض برسالة expected a single document in the stream؛ قسّمها أولًا. ينطبق هذا على ملفات Kubernetes التي تجمع عدة موارد في ملف واحد.

لماذا يصبح version: 1.0 هو 1 ويبقى yes نصًا؟

تُحدَّد أنواع القيم غير المقتبسة بقواعد YAML: 1.0 رقم، لذا يُطبع 1. ويتبع js-yaml إصدار YAML 1.2 حيث yes / no / on / off نصوص عادية، لذا يبقى مفتاح on: في GitHub Actions نصًا. أضف علامات اقتباس إذا كان النوع يجب أن يبقى نصًا.

كيف تُعالج التواريخ والأعداد الكبيرة وnull؟

يُفسَّر تاريخ غير مقتبس مثل 2024-01-01 كوقت، ويظهر في JSON بصيغة 2024-01-01T00:00:00.000Z. الأعداد الأكبر من 2^53 تفقد دقتها، و.inf / .nan يصبحان null. كما تصبح ~ وnull والقيم الفارغة null.

هل يعمل مع ملفات Kubernetes وdocker-compose وGitHub Actions؟

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

ماذا عن حجم الملف والخصوصية؟

كل شيء يجري في المتصفح ولا يُرفع أي ملف. لا يوجد حد مُعد، لكن التحويل متزامن على الخيط الرئيسي، لذا قد تُجمّد ملفات بحجم عدة ميغابايت الصفحة.

الأدوات ذات الصلة
SponsorMindElixir