JSON ל ממיר YAML
המר את מבנה JSON לפורמט YAML נקי. אידיאלי עבור מניפסטים של Kubernetes ותצורות ענן.
המר את מבנה JSON לפורמט YAML נקי. אידיאלי עבור מניפסטים של Kubernetes ותצורות ענן.
מעבר מ-JSON ל-YAML הוא בעיקר על הפיכת הנתונים לקריאה יותר עבור בני אדם. שני הפורמטים מתארים את אותם סוגים של מבנים - אובייקטים/מפות, מערכים/רצפים, סקלרים - אבל התחביר מבוסס הזחה של YAML, ציטוט אופציונלי ותמיכה בהערות מקלים על הסריקה והעריכה ביד. קובצי תצורה הם מקרה השימוש הקנוני: מניפסטים של Kubernetes, זרימות עבודה של CI, ספרי משחק של Ansible ועשרות כלים אחרים בחרו ב-YAML במיוחד בגלל שהעורכים העיקריים שלהם הם בני אדם.
ממיר זה משתמש ב-js-yaml כדי לסדר אובייקט JSON מנתח לתוך YAML. התוצאה משמרת את מבנה הנתונים בדיוק תוך יישום מוסכמות YAML: הזחה עבור קינון, רשימות עבור מערכים, זוגות מפתח-ערך עבור מאפייני אובייקט. הציטוט הכפול הקפדני של JSON רגוע; רק מחרוזות המכילות תווים מיוחדים או שנראים כמו סוגים אחרים מצוטטות בפלט.
ההמרה היא שמירה על מידע למעט מקום שבו YAML מוסיף כושר ביטוי ל-JSON לא היה. לא ניתן לשחזר הערות (ל-JSON לא היו כאלה). הפניות לעיגון וכינוי עשויות לדחוס מבנים חוזרים אך אינם נוצרים באופן אוטומטי; הפלט מרחיב את כל ההפניות בשורה.
YAML קריא באופן דרמטי יותר מ-JSON עבור עריכת תצורה של בני אדם. הזחה מחליפה את קינון הפלטה, מרכאות הן אופציונליות עבור מחרוזות פשוטות, והערות יכולות לתעד הגדרות לא ברורות. עבור קבצים שבני אדם מתחזקים - תצורת יישומים, תשתית כקוד, בניית צינורות - YAML הוא כמעט תמיד פורמט היעד הנכון.
כלי תשתית מודרניים מעדיפים באופן גורף את YAML. Kubernetes, תרשימי Helm, Ansible, GitHub Actions, GitLab CI, Docker Compose וכלים רבים אחרים מעדיפים או דורשים YAML. המרת ייצוא JSON ממערכת אחת לתצורת YAML עבור אחרת היא שלב אינטגרציה שגרתי.
הדבק JSON, קבל את YAML.
פונקציית ה-dump של js-yaml עוברת על עץ האובייקטים של JavaScript ופולטת YAML באמצעות עיצוב ניתן להגדרה. עומק הכניסה, רוחב הקו, סף סגנון הזרימה וטיפול בהצעות מחיר הם כולם פרמטרים. הגדרות ברירת המחדל מייצרות YAML בסגנון בלוק עם הזחה של 2 רווחים, המוסכמה הנפוצה ביותר.
ציטוט מחרוזות עוקב אחר הכללים של YAML: מחרוזות שנראות כמו סוגים אחרים (מספרים, בוליאנים, null, תאריכים) מצוטטות כדי לכפות פירוש מחרוזת; מחרוזות המכילות תווים מיוחדים (נקודתיים, גיבוב, מקפים מובילים) מצוטטות; מחרוזות אלפביתיות פשוטות נותרות ללא ציטוט.
הפלט תואם YAML 1.2 ומנתח בצורה נקייה עם js-yaml, PyYAML וספריות YAML עיקריות אחרות. נסיעות אימפוטנטיות הלוך ושוב (JSON → YAML → JSON) משמרות את הנתונים, אם כי ייצוג YAML בוחר בעיצוב קנוני שעשוי להיות שונה ממקבילה בכתב יד.