تحويل YAML إلى JSON — Numio
يحلّل مستند 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 لا يُطبَّق.