JSON Toolkit

JSON מול JSON5 מול JSONC

שורה תחתונה: על-קבוצות קפדניות לפי הסדר: JSONC מוסיף הערות; JSON5 מוסיף גרשיים בודדים, מפתחות בלי גרשיים, פסיקים בסוף ומספרים הקסדצימליים. בחירה שגויה שוברת API, לא את העורך.

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

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

בשורה אחת: JSONC הוא JSON בתוספת הערות; JSON5 הוא JSON בתוספת הרגלים של JavaScript.

מטריצת תכונות

תכונה JSON JSONC JSON5
מחרוזות בגרשיים כפולים ✅ ✅ ✅
מחרוזות בגרשיים בודדים ❌ ❌ ✅
מפתחות בלי גרשיים ❌ ❌ ✅
הערות שורה // ❌ ✅ ✅
הערות בלוק /* */ ❌ ✅ ✅
פסיקים בסוף ❌ ❌ ✅
מספרים הקסדצימליים 0xFF ❌ ❌ ✅
Infinity / NaN ❌ ❌ ✅
מחרוזות מרובות-שורות ❌ ❌ ✅
קריא למפרסים סטנדרטיים ✅ ❌ ❌

שימו לב ש-JSONC פותר רק הערות. אנשים רבים מניחים ש"JSON שמתיר הערות" מתיר גם פסיקים בסוף; tsconfig.json עדיין נכשל על אחד כזה.

למה כל אחד מיועד

JSON — החלפה בין מערכות. APIs, תורים, עמודות JSON במסד נתונים, לוגים. כל דבר מכונה-למכונה.

JSONC — קונפיגורציית עורך. VS Code מפרס את הקבצים האלה בעצמו, כך ש-JSON.parse לעולם לא רואה אותם. אין RFC; זו מוסכמה דה-פקטו בהובלת Microsoft.

JSON5 — על-קבוצה סלחנית לבני אדם. המטרה הייתה "קונפיגורציה שנראית כמו אובייקט ליטרלי של JavaScript". מתאים ביותר לקבצי .json5 שנטענים על ידי כלי בנייה; התחביר הרחב ביותר והתמיכה הצרה ביותר בכלים.

בחירה

מצב לבחור
גופי בקשה או תשובה JSON, אין חלופה
עמודות JSON ב-MySQL / PostgreSQL JSON, הפונקציות שלהן לא מקבלות דבר אחר
קונפיגורציית פרויקט שצריכה הסבר JSONC אם נתמך, אחרת YAML
רוצים רופפות בסגנון JS JSON5, אחרי אישור שהטוען תומך בו
לא-מהנדסים יערכו אותו YAML, הזחה מנצחת סוגריים

מלכודת קלה אחת

פירוס קובץ JSONC כ-JSON קפדני מפיק שגיאה שמצביעה על ההערה:

SyntaxError: Unexpected token / in JSON at position 42

לפני שמוחקים את ההערה, בדקו אם הקובץ אמור להיות JSONC. מחקו אותה ועדיין עשויים להיתקל בפסיק בסוף שתי שורות אחר כך.

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

איך לבחור בין JSONC ל-JSON5?

השתמשו ב-JSONC כשהערות הן הדבר היחיד שצריך: הוא מוסיף // ו-/* */ על גבי JSON, ו-settings.json ו-tsconfig.json של VS Code משתמשים בו. השתמשו ב-JSON5 כשגם רוצים גרשיים בודדים, מפתחות בלי גרשיים, פסיקים בסוף, מספרים הקסדצימליים או מחרוזות מרובות-שורות. שניהם תלויים בטוען, אז ודאו שהכלי שקורא את הקובץ תומך בו.

למה קובץ JSONC לא יכול להיקרא כ-JSON סטנדרטי?

JSONC הוא מוסכמה דה-פקטו, לא RFC נפרד, כך שמפרסים סטנדרטיים דוחים הערות. JSON.parse על קובץ כזה זורק Unexpected token /, ומצביע על ההערה ולא על הנתונים. רק קונפיגורציה שנקראת על ידי עורך או מפרס ייעודי צריכה להיכתב כ-JSONC.

האם לשלוח קובץ JSON5 ל-API?

לא. APIs, עמודות JSON במסד נתונים ותורים מפרסים JSON קפדני, כך שגרשיים בודדים, מפתחות בלי גרשיים ופסיקים בסוף של JSON5 נדחים. JSON5 מיועד לקונפיגורציה מקומית שבני אדם עורכים; המירו אותו ל-JSON סטנדרטי לפני שהוא חוצה גבול מערכת.

קריאה נוספת