محول JSON ↔ YAML
محول JSON ↔ YAML
حرِّر JSON و YAML جنبًا إلى جنب مع مزامنة فورية ثنائية الاتجاه. يدعم ضبط المسافات البادئة وترتيب المفاتيح وتقسيم YAML متعدد المستندات. مفيد لإعدادات Kubernetes/Helm/CI وتصحيح أخطاء API.
🚀 بداية سريعة
- الصق أو اكتب JSON في المحرر الأيسر، ويتم تحديث YAML على اليمين تلقائيًا.
- يمكنك أيضًا كتابة YAML على اليمين، وJSON على اليسار يتم تحديثهما تلقائيًا.
- التزامن ثنائي الاتجاه بالكامل. ليست هناك حاجة إلى تبديل الوضع: قم بتحرير أي من الجانبين، وسيتم تحديث الجانب الآخر على الفور.
- استخدم شريط الأدوات العلوي لتعيين مسافة بادئة JSON/YAML، وتمكين فرز المفاتيح، وتبديل إخراج YAML متعدد المستندات.
- اضغط على Tab في المحرر لإدراج مسافة بادئة بدلاً من نقل التركيز.
- يحتوي كل محرر على زري نسخ ومسح في الزاوية العلوية اليمنى. مسح أي من الجانبين يمسح كلا الجانبين.
📌 سيناريوهات شائعة
- تأليف Kubernetes: تحويل بيانات موارد K8 بين YAML وJSON لفحص البنية من أي من طريقتي العرض.
- تصحيح أخطاء قيم Helm: قم بتحويل value.yaml إلى JSON لفحص الأنواع والتداخل في IDE الخاص بك.
- خطوط أنابيب CI/CD: تحويل المقتطفات بسرعة بين إجراءات GitHub (YAML) وأنظمة CI التي تستخدم JSON.
- تصحيح أخطاء واجهة برمجة التطبيقات (API): تحويل حمولات JSON إلى YAML للحصول على عرض هرمي أكثر وضوحًا.
- ترحيل التكوين: ملفات التكوين لتحويل الدفعات بين YAML وJSON.
- التنسيق والتحقق من الصحة: التحقق من بناء جملة JSON/YAML عبر المزامنة ثنائية الاتجاه، مع موقع الخطأ في السطر/العمود.
🧭 نصائح الاستخدام
- تعمل مسافة بادئة JSON ذات مسافتين في معظم الحالات؛ استخدم 4 مسافات للتداخل العميق أو ملفات قيم Helm.
- فعِّل فرز المفاتيح لعرض مفاتيح الكائنات بترتيب أبجدي، مما يسهّل مقارنة اختلافات الإعدادات.
- عندما يكون جذر JSON عبارة عن مصفوفة، قم بتمكين YAML متعدد المستندات لتقسيم كل عنصر إلى مستند منفصل (---)، وهو مفيد لملفات K8s متعددة الموارد.
- إذا كان الإدخال غير صالح، فسيعرض المحرر خطأً في تفاصيل السطر/العمود؛ يحتفظ الجانب الآخر بآخر محتوى صالح له.
- بالنسبة للمحتوى الكبير، الصق أولاً وانتظر المزامنة، ثم تابع التحرير لتجنب إعادة التحويل المفرط.
⚠️ القيود والتوافقية
- يتبع تحليل YAML مواصفات YAML 1.2. قد تختلف بعض السلوكيات الخاصة بـ YAML 1.1 (على سبيل المثال، نعم/لا تحويل منطقي تلقائي).
- تتبع أرقام JSON حدود JavaScript IEEE 754. قد تفقد الأعداد الصحيحة التي تتجاوز الدقة الآمنة 53 بت الدقة.
- يتم توسيع مراسي YAML والأسماء المستعارة (&، *، <<) إلى قيم محددة عند تحويلها إلى JSON؛ لا يمكن الحفاظ على المراجع.
- يتم إسقاط تعليقات YAML أثناء التحويل لأن JSON لا يدعم التعليقات.
🔒 الخصوصية والأمان
- تتم جميع عمليات المعالجة محليًا في متصفحك. بياناتك لا تترك جهازك أبدًا.
❓ أسئلة شائعة
ما الفرق بين JSON وYAML ومتى يجب أن أستخدم كل منهما؟
يمكن أن يمثل JSON وYAML نفس أنواع البيانات (الكائنات والمصفوفات والسلاسل والأرقام)، لكن تركيبهما يختلف: • يستخدم JSON الأقواس/الأقواس وعلامات الاقتباس المزدوجة، وله بناء جملة أكثر صرامة، ولا يدعم التعليقات. • يستخدم YAML المسافة البادئة للتسلسل الهرمي، وهو أكثر قابلية للقراءة من قبل الإنسان، ويدعم التعليقات، ولكنه حساس للمسافات البيضاء. القاعدة الأساسية: • بالنسبة لواجهات برمجة التطبيقات (API) وتبادل البيانات من جهاز إلى جهاز، يفضل JSON. • بالنسبة لتكوينات Kubernetes/Helm/CI التي يقوم البشر بتحريرها كثيرًا، تفضل YAML. • يمكنك التحويل بينهما دون تغيير نموذج البيانات.
لماذا تصبح نعم/لا/تشغيل/إيقاف في YAML صحيحة/خطأ بعد التحويل؟
يأتي هذا من سلوك YAML 1.1 القديم، حيث قد يتم تحليل نعم/لا/تشغيل/إيقاف/y/n كقيم منطقية. تتبع هذه الأداة YAML 1.2، حيث تكون القيم المنطقية صواب/خطأ فقط. إذا كنت بحاجة إلى قيم سلسلة، فاقتبسها (على سبيل المثال، "yes").
لماذا تختفي تعليقات YAML بعد التحويل إلى JSON؟
JSON (RFC 8259) لا يسمح بالتعليقات. لذلك لا يمكن الحفاظ على تعليقات YAML في تحويل YAML → JSON، ولا يمكن إعادة بنائها عند التحويل مرة أخرى. احتفظ بملف YAML الأصلي إذا كانت التعليقات مهمة.
ماذا يعني --- في YAML؟
--- هو فاصل المستندات الخاص بـ YAML، والذي يستخدم لتخزين عدة مستندات مستقلة في ملف واحد. يعد هذا أمرًا شائعًا في Kubernetes، حيث يمكن أن يحتوي ملف واحد على تعريفات النشر والخدمة وConfigMap. تقرأ هذه الأداة YAML متعدد المستندات كمصفوفة JSON، ويمكنها أيضًا تقسيم مصفوفة JSON مرة أخرى إلى --- مستندات YAML منفصلة.
ماذا علي أن أفعل إذا فقدت الدقة الرقمية بعد التحويل؟
تستخدم JavaScript أرقام IEEE 754 مزدوجة الدقة. تتراوح الأعداد الصحيحة الآمنة من -(2^53-1) إلى 2^53-1 (±9007199254740991). قد تفقد الدقة الأعداد الصحيحة الأكبر (على سبيل المثال، معرفات Snowflake أو الطوابع الزمنية 64 بت). للحفاظ على القيم الدقيقة، قم بتخزينها كسلاسل، مثل "9007199254740992".
ماذا يحدث لمثبتات YAML (& و*) أثناء التحويل؟
المراسي (&الاسم) والأسماء المستعارة (*الاسم) هي ميزات إعادة استخدام خاصة بـ YAML. ليس لدى JSON آلية مرجعية مكافئة، لذلك يتم توسيع الأسماء المستعارة إلى نسخ كاملة أثناء التحويل. يعد هذا تحويلًا ضائعًا، ولا يمكن استعادة بنية المرساة الأصلية تلقائيًا.