انتقل إلى المحتوى

تحويل YAML إلى JSON — Numio

يحلّل مستند YAML واحدًا بمكتبة yaml (core schema في YAML 1.2) ويُخرجه JSON منسّقًا بمسافات بادئة. تُحذف التعليقات، وتُوسَّع المراسي والأسماء المستعارة، وتبقى قيم مثل yes أو 2024-01-01 سلاسل نصية.

إرسال إعدادات مكتوبة بـ YAML إلى API أو مدقق JSON Schema لا يقبل إلا JSON.

YAML

متى تستخدمها

  • إرسال إعدادات مكتوبة بـ YAML إلى API أو مدقق JSON Schema لا يقبل إلا JSON.
  • التحقق من الأنواع الفعلية في ملف CI أو Kubernetes، مثل ما إذا كان رقم الإصدار سلسلة نصية أم رقمًا.

طريقة الاستخدام

  1. الصق مستند YAML واحدًا أو حمّل ملف .yaml/.yml.
  2. إذا ظهر خطأ، فتحقق في السطر المذكور من المسافات البادئة والمفاتيح المكررة وفواصل ---.
  3. راجع السلاسل النصية مقابل الأرقام في مخرجات 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 لا يُطبَّق.

المواصفات والمراجع