أدوات المطورين
محوّل JSON ↔ YAML
حوّل JSON إلى YAML أو YAML إلى JSON محليًا مع المصفوفات المتداخلة والنصوص والأرقام الدقيقة.
النتائج
تحويل JSON وYAML بأنواع البيانات المقصودة
حوّل البيانات المتوافقة مع JSON بين JSON الصارم والصياغة الأساسية لـYAML 1.2. يحافظ المحوّل على الصياغة الرقمية الأصلية لـJSON، بما فيها الأعداد الصحيحة الكبيرة، بدلًا من تقريبها أولًا عبر أرقام JavaScript. يحوّل قيم البيانات، لا تنسيق المستند المصدر أو مخطط إعدادات التطبيق. لا تبقى تعليقات YAML ومراسيه واختيارات عرضه بعد التحويل إلى JSON.
خطوة بخطوة
- الصق نصًا أو افتح ملف JSON أو YAML أو YML أو TXT محليًا بترميز UTF-8. اختر JSON → YAML أو YAML → JSON صراحةً؛ لا يحدد فتح الملف الاتجاه.
- اختر مسافتين أو أربع مسافات ورتّب مفاتيح الكائنات اختياريًا. عالج المدخلات وأصلح أي خطأ في الصياغة أو ميزة غير مدعومة. الترتيب تكراري في الكائنات المتداخلة، ويستخدم ترتيبًا معجميًا حساسًا لحالة الأحرف؛ ويبقى ترتيب المصفوفات دون تغيير.
- افحص النصوص والقيم المنطقية وnull والأرقام، ثم انسخ أو اطبع أو نزّل converted.yaml أو converted.json. إذا عدّلت المدخلات أو الخيارات، فعالج مجددًا لأن الإخراج القديم يُمسح. تحقق من الملف المحوّل باستخدام التطبيق الذي سيستخدمه.
الإعدادات والحدود
- الأنواع وقواعد المستند
- استخدم مستند YAML 1.2 واحدًا بمفاتيح نصية فريدة وقيم متوافقة مع JSON. ضع المعرّفات الشبيهة بالأرقام مثل "00123" بين علامتي اقتباس؛ تتحول YAML 00123 غير المقتبسة إلى العدد 123. تبقى yes وon غير المقتبستين ونصوص تواريخ ISO نصوصًا وفق القواعد الأساسية.
- الأسماء البديلة والميزات غير المدعومة
- تتوسع الأسماء البديلة غير الدورية إلى قيم مكررة. تُرفض الدورات والمفاتيح المكررة وغير النصية والوسوم غير المدعومة والقيم العددية غير المنتهية أو غير المحددة. لا تُطبّق مفاتيح دمج YAML: تصبح <<: *base خاصية "<<" عادية، لذا وسّع الحقول التي تقصد توريثها أولًا.
- الحجم والتعقيد
- المدخلات محدودة بـ2 MiB من نص UTF-8: أي 2,097,152 بايت. الإخراج محدود بـ8 MiB. تتوقف المعالجة أيضًا بعد تجاوز 128 مستوى تداخل أو 200,000 عقدة قيمة أو 100 زيارة لاسم بديل؛ وقد يتجاوز ملف صغير هذه الحدود.
مثال تطبيقي
نزّل types-example.json واختر JSON → YAML بمسافتين للمسافة البادئة مع إيقاف الترتيب. حوّله وقارن types-example.yaml. يبقى id وword المقتبسان نصوصًا، ويبقى enabled بقيمة false، وتبقى retries وlarge أرقامًا.
تنزيل ملفات المثال
مدخلات المثال
{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}النتيجة المتوقعة
"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993افتح الآن types-example.yaml، وبدّل صراحةً إلى YAML → JSON وعالج مجددًا. يجب أن يبقى id بقيمة "00123"، والعدد الصحيح الكبير بقيمة 9007199254740993. أزل علامتي الاقتباس حول 00123 في YAML وكرر: تصبح قيمته العدد 123. يهم هذا الفرق للمعرّفات حتى عندما يكون الملفان صالحين.
الأسئلة وحل المشكلات
لماذا يفشل هنا JSON ذو المفاتيح المكررة بينما يُنسّق في مكان آخر؟
يمكن لمنسّق JSON التحذير من المفاتيح المكررة والاحتفاظ بها. يرفضها هذا المحوّل لأن تحويلها إلى بنية تربط المفاتيح بالقيم قد يغيّر معناها. قرر أي قيمة تنتمي إلى المصدر واحذف التكرار قبل التحويل.
هل تبقى التعليقات والتوريث في YAML؟
لا يحتوي JSON على تعليقات أو مراسٍ. تتوسع الأسماء البديلة، وتُصدّر مفاتيح الدمج حرفيًا بدلًا من تطبيقها كتوريث. وسّع البيانات المقصودة وراجع النتيجة؛ ليس التحويل إعادة كتابة مطابقة لكل ميزات YAML.
هل الأرقام الكبيرة آمنة في تطبيق الوجهة؟
يحافظ المحوّل على الصيغ الرقمية المدعومة وقيم الأعداد الصحيحة الكبيرة، لكن قد يحللها برنامج لاحق بدقة أقل. استخدم نصًا مقتبسًا عندما تكون القيمة الشبيهة بالرقم معرّفًا، واختبر محلّل تطبيق الوجهة.