تحويل YAML إلى JSON
يحلّل مستند YAML واحدًا بمكتبة yaml (core schema في YAML 1.2) ويُخرجه JSON منسّقًا بمسافات بادئة. تُحذف التعليقات، وتُوسَّع المراسي والأسماء المستعارة، وتبقى قيم مثل yes أو 2024-01-01 سلاسل نصية.
إرسال إعدادات مكتوبة بـ YAML إلى API أو مدقق JSON Schema لا يقبل إلا JSON.
متى تستخدمها
- إرسال إعدادات مكتوبة بـ YAML إلى API أو مدقق JSON Schema لا يقبل إلا JSON.
- التحقق من الأنواع الفعلية في ملف CI أو Kubernetes، مثل ما إذا كان رقم الإصدار سلسلة نصية أم رقمًا.
طريقة الاستخدام
- الصق مستند YAML واحدًا أو حمّل ملف .yaml/.yml.
- إذا ظهر خطأ، فتحقق في السطر المذكور من المسافات البادئة والمفاتيح المكررة وفواصل ---.
- راجع السلاسل النصية مقابل الأرقام في مخرجات JSON، ثم انسخها.
إدخال YAML
# deployment settings service: billing-api replicas: 2 version: "1.10" enabled: yes ports: - 80 - 443 env: LOG_LEVEL: info
JSON
{
"service": "billing-api",
"replicas": 2,
"version": "1.10",
"enabled": "yes",
"ports": [
80,
443
],
"env": {
"LOG_LEVEL": "info"
}
}التفاصيل والقيود
يجري التحليل في المتصفح. المخرجات دائمًا JSON بمسافتين؛ ولا يوجد خيار للتصغير.
تنطبق قواعد YAML 1.2: yes/no/on/off سلاسل نصية وليست قيم boolean، والتواريخ غير المقتبسة تبقى سلاسل نصية. 0o17 رقم ثُماني (15).
لا تُدمج مفاتيح الدمج (<<: *anchor)؛ بل تظهر كمفتاح حرفي "<<". المفاتيح المكررة في الـ mapping الواحد تُعد خطأً.
تفقد الأعداد الصحيحة الأكبر من 2^53 دقتها في JSON. ضع المعرّفات الطويلة بين علامتي اقتباس في YAML.
FAQ
هل يمكنه تحويل ملف يحتوي على عدة مستندات مفصولة بـ ---؟
لا. تسبب المستندات المتعددة الخطأ "Source contains multiple documents". الصق مستندًا واحدًا في كل مرة. لا بأس بفاصل --- واحد في البداية.
لماذا تكون enabled: yes سلسلة نصية في JSON؟
يتبع المحلّل YAML 1.2، حيث true وfalse هما قيمتا boolean الوحيدتان. اكتب true/false إذا كنت تحتاج قيمة boolean في JSON.
هل المراسي والأسماء المستعارة مدعومة؟
نعم. يُستبدل الاسم المستعار مثل *base بنسخة من القيمة المرتبطة بالمرساة. لكن مفتاح الدمج << من YAML 1.1 لا يُطبَّق.