YAML ל ממיר JSON
המרת YAML ל-JSON מהירה ומאובטחת. מושלם עבור קבצי תצורה וניתוח נתונים.
המרת YAML ל-JSON מהירה ומאובטחת. מושלם עבור קבצי תצורה וניתוח נתונים.
YAML ו-JSON הם פורמטים קרובים - JSON הוא מבחינה טכנית תת-קבוצה קפדנית של YAML 1.2 - והמרה ביניהם היא בדרך כלל פשוטה. YAML מוסיפה תכונות ידידותיות לאדם שחסרות ל-JSON: הערות, מחרוזות מרובות שורות ללא בריחה, הפניות של עוגן וכינוי, ציטוט גמיש יותר ומבנה מבוסס הזחה הדומה לפריסת מסמך טבעית. זה הופך את YAML לבחירה הפופולרית עבור קבצי תצורה (מניפסטים של Kubernetes, זרימות עבודה של GitHub Actions, Docker Compose) בעוד ש-JSON שולט במטעני API.
המרת YAML ל-JSON משמעה בדרך כלל ויתור על התוספות הידידותיות לאדם של YAML בתמורה לפורמט שמכונות מנתחים בקלות רבה יותר וזו השפה הפרנקה של ממשקי HTTP API. הערות נמחקות (ל-JSON אין כאלה). הפניות עוגן נפתרות לערכי ההתייחסות שלהן. מחרוזות מרובות שורות קורסות למחרוזות JSON סטנדרטיות עם קווים חדשים מוטבעים.
ממיר זה מנתח את YAML באמצעות js-yaml, ספריית YAML הנפוצה ביותר ב-JavaScript. הפלט נוצר באמצעות JSON.stringify עם הזחה אופציונלית. ההמרה מטפלת בכל תחביר YAML 1.2 הסטנדרטי כולל סגנון זרימה, סגנון בלוק, סקלרים, רצפים, מיפויים, עוגנים, כינויים וסוגי התגים הסטנדרטיים.
רוב ממשקי ה-API וסביבות תכנות רבות מצפים ל-JSON. יש להמיר קבצי תצורה שנכתבו ב-YAML ל-JSON בעת שילוב עם קוד או שירותים שמקבלים רק JSON. כלי עבודה עבור JSON גם בשפע: jq, JSON Path, JSON Schema, ומערכת אקולוגית רחבה של מאמתים ושנאים מניחים כולם קלט JSON.
JSON הוא גם חד משמעי בדרכים ש-YAML אינו. הגמישות של YAML יוצרת הפתעות ניתוח - מחרוזות כמו 'לא' ניתוח כשווא בוליאני ב-YAML 1.1, מחרוזות גרסה מנותחות כמו צפים, שגיאות הזחה המייצרות שינויים מבניים שקטים. המרה ל-JSON מקפיאה את הנתונים לצורה פחות מעורפלת.
הדבק את YAML, קבל JSON.
js-yaml מיישמת את YAML 1.2 עם תמיכה אופציונלית במוזרויות YAML 1.1 (הבעיה 'לא' כשווא, מספרים אוקטליים ללא קידומת 0o). המנתח מייצר עץ אובייקטים של JavaScript באמצעות סוגים מקוריים: מספרים, מחרוזות, בוליאנים, null, מערכים ואובייקטים רגילים.
JSON.stringify מסדרת את עץ האובייקטים ל-JSON. הזחה אופציונלית מייצרת פלט מודפס יפה; בלעדיו התוצאה היא JSON קומפקטית בקו יחיד. ערכים מיוחדים (NaN, Infinity, undefined) אינם JSON חוקיים; הממיר מאלץ אותם לבטל היכן שהם קיימים.
מקרי קצה: חותמות זמן של YAML הופכות למחרוזות ISO-8601 ב-JSON. נתונים בינאריים של YAML (מקודדים ב-base64) הופכים למחרוזת. עוגנים וכינויים נפתרים לערכים כפולים ב-JSON, מכיוון של-JSON אין תחביר התייחסות.