JSON Toolkit

JSON או YAML

שורה תחתונה: JSON מפריד בעזרת סוגריים מסולסלים ו-YAML בעזרת הזחה: מכונות מקבלות JSON, בני אדם שעורכים קונפיגורציה מקבלים YAML. הערות, anchors ומבנה של כמה מסמכים לא שורדים את ההמרה.

מתחילכ-4 דקות קריאהפורסם 2026-10-30עודכן 2026-10-30
מתי להשתמש ב-JSON ומתי ב-YAML

שורה תחתונה: השתמשו ב-JSON לנתונים שעוברים בין מכונות וב-YAML לקונפיגורציה שבני אדם עורכים; עדיפו YAML כשצריך הערות, טקסט רב-שורתי או anchors, ו-JSON כשכל שפה חייבת לפרס את אותו payload בלי עמימות.

זה לצד זה

{
  "server": {
    "host": "127.0.0.1",
    "port": 8080
  }
}
server:
  host: 127.0.0.1
  port: 8080

אותו מבנה. YAML מוותר על הפיסוק ומוסיף מקום להערה.

היכן הם נבדלים

JSON YAML
מבנה סוגריים מסולסלים ופסיקים הזחה
הערות אין יש
מחרוזות מרכאות כפולות, נדרש escaping בדרך כלל בלי מרכאות
טקסט רב-שורתי escapes של \n או מערכים block scalars של `
שימוש חוזר אין anchors & ו-aliases *
מספר מסמכים עטיפה במערך מפרידים ---
מהירות פירוס מהיר איטי יותר, חוקי הזחה
עמימות נמוכה מאוד no נפרס כבוליאני, הזחה של אוף-בי-ואן

השורה האחרונה היא המחיר האמיתי של YAML. ב-YAML 1.1, country: NO מחזיר את הבוליאני false, ו-version: 1.0 עשוי להפוך ל-float. ל-JSON אין טיפוסיות מרומזת כלל.

בחירה

JSON: גופי בקשות ותשובות, הודעות בין שירותים, עמודות JSON במסדי נתונים, כל דבר שחייב להיפרס באופן זהה בכל שפה.

YAML: אקוסיסטמות שבהן הוא ברירת המחדל (Kubernetes, Ansible, GitHub Actions, Docker Compose); קונפיגורציה שזקוקה להסבר; קבצים שנשלטים על ידי טקסט ארוך כמו תעודות, סקריפטים או SQL.

מה ההמרה מאבדת

YAML → JSON: את כל ההערות, את שימוש החוזר ב-anchors (נפתחים לשכפולים), את כל המסמכים מלבד הראשון, ואת הכתיב המקורי של תאריכים ובוליאנים.

JSON → YAML: ההבחנה בין מחרוזת למספר נחלשת, כך ש-"8080" ו-8080 שניהם צריכים מרכאות מפורשות כדי להישאר בטוחים.

המירו לצורך מיגרציות ובדיקה חד-פעמית. אל תתחזקו את אותו קובץ בשני פורמטים כתצוגות מקבילות.

שאלות ותשובות

איך להחליט בין JSON ל-YAML?

התחילו ממי קורא ומתחזק את הקובץ: השתמשו ב-JSON כשהתוכנית מייצרת אותו, הוא חוצה גבולות שפה, והוא חייב להיפרס באופן צפוי; השתמשו ב-YAML כשבן אדם עורך אותו וצריך הסברי שדות או טקסט רב-שורתי ארוך. הם מתמירים זה לזה, אבל אל תתחזקו את אותה קונפיגורציה בשני הפורמטים לטווח ארוך.

למה YAML יוצר יותר עמימות טיפוסים?

ל-YAML יש טיפוסיות מרומזת, כך שערכים כמו NO, on או 1.0 יכולים להפוך לבוליאנים, תאריכים או מספרים. ל-JSON יש טיפוסים מפורשים בלבד: מחרוזת חייבת מרכאות, מה שהופך את הפירוס לצפוי יותר בין שפות.

האם הערות ו-anchors צריכים לשרוד בהמרת YAML ל-JSON?

לא. הערות YAML, anchors ומספר מסמכים לא ניתנים לייצוג ב-JSON; anchors נפתחים לתוכן משוכפל. אם צריך לשמר אותם, השתמשו בספריית YAML עם Document API במקום סבב המרה של אובייקט.

קריאה נוספת