מהו קובץ JSON, במה לפתוח אותו ואיך לערוך אותו
שורה תחתונה: מטקסט משובש ב-Notepad לשלוש דרכים לפתוח קובץ JSON, ובנוסף איך לוודא ששום דבר לא נשבר אחרי עריכה ומה לעשות כשקובץ ענק מסרב להיפתח.

שורה תחתונה: לפני פתיחת קובץ JSON, ודאו את הקידוד שלו ואת ה-BOM, ואז ודאו שהמבנה הוא רק אובייקט או מערך; אחרי עריכה, תמיד אמתו אותו עם מפענח במקום לבחון סוגריים ופסיקים בעין.
זהו בסך הכול קובץ טקסט רגיל עם סיומת
.json, ואפילו Notepad יכול לפתוח אותו. הכאב הראש האמיתי אינו "הוא לא נפתח", אלא שברגע שהוא נפתח אינכם רואים מה שברתם.
1. מה באמת יש בתוך קובץ JSON
קובץ JSON תקין יכול להכיל רק אחד משני דברים: אובייקט {...} או מערך [...]. שום דבר אחר אינו מותר — לא הצהרות משתנים, לא הערות, לא פונקציות.
{
"name": "order service",
"port": 8080,
"debug": false,
"upstream": ["10.0.0.11", "10.0.0.12"],
"timeout": null
}
מספיק לזהות שלושה דברים מבחינה מבנית:
| מה שרואים | המשמעות | המושג המתאים בתכנות |
|---|---|---|
זוגות מפתח-ערך עטופים ב-{ } |
אובייקט; המפתחות חייבים להיות מחרוזות בגרשיים כפולים | Map / struct |
רצף ערכים עטוף ב-[ ] |
מערך; טיפוסי האיברים יכולים להיות שונים | List |
| שישה טיפוסי ערכים | מחרוזת, מספר, בוליאני, null, אובייקט, מערך | רק השישה האלה; אין תאריכים ואין שלמים |
סיומת הקובץ אינה קובעת את התוכן: package.json, tsconfig.json ו-composer.json הם כולם אותו סוג דבר; כלים שונים פשוט הסכימו לקרוא מהם מפתחות שונים.
2. שלוש דרכים לפתוח אותו, לפי תרחיש
רק הצצה מהירה: פתחו אותו בדפדפן. גררו את הקובץ לחלון Chrome או Edge והדפדפן יציג אותו כפי שהוא; אם מותקן תוסף JSON Viewer, הוא מעוצב יפה וניתן לקיפול אוטומטית.
צריך לערוך את התוכן: השתמשו בעורך. VS Code, Sublime ו-Notepad++ מגיעים כולם עם הדגשת תחביר JSON והתאמת סוגריים, ו-Shift + Alt + F ב-VS Code מעצב את המסמך. שימו לב ש-Windows Notepad עשוי להוסיף BOM בעת שמירה, ולכן שינויי התצורה שלכם אולי לא ייכנסו לתוקף; מוטב להימנע ממנו.
לא רוצים להתקין כלום, רק לאמת: השתמשו במעצב ה-JSON המקוון. הדביקו את התוכן ותראו מיד מספרי שורה ועמודה, מיקומי שגיאה ועץ ניתן לקיפול; העתיקו את התוצאה כשתהיו מסיימים. הנתונים מעובדים מקומית בדפדפן ואינם מועלים לשרת.
קבצים גדולים (עשרות MB ומעלה): אל תכריחו אותם להיפתח בעורך. פתיחת קובץ JSON של 100 MB ב-VS Code תיתקע עד שתטילו ספק בבחירות החיים שלכם; השתמשו בשורת הפקודה כדי לבדוק את המבנה קודם:
# הסתכלו על 20 השורות הראשונות כדי לוודא אם זה מערך
head -n 20 data.json
# השתמשו ב-jq כדי לרשום את מפתחות הרמה העליונה בלי לטעון את כל הקובץ
jq -r 'keys[]' data.json | head
# ספרו את אורך המערך
jq 'length' data.json
3. מה לעשות כשפתיחה כפולה מציגה טקסט משובש
שלושה גורמים, שכל אחד מטופל אחרת:
- זה למעשה קובץ בינארי (למשל ארכיון דחוס, או קובץ מסד נתונים מיוצא, עם סיומת
.json). השתמשו ב-file data.jsonכדי לראות את הטיפוס האמיתי; אל תכריחו להתייחס אליו כאל טקסט. - הקידוד אינו UTF-8. טקסט סיני שמקודד ב-GBK מוצג כמשובש בסביבת UTF-8. השתמשו ב"Reopen with encoding" של העורך כדי לנסות GBK פעם אחת; אם הוא מוצג כראוי, שמרו אותו כ-UTF-8.
- הקובץ מוצפן או דחוס. הסימפטום הוא
PK(zip) או ערימת סימני שאלה בתחילתו; קבצים כאלה חייבים להיות מפורקים או מפוענחים קודם.
4. איך לוודא ששום דבר לא נשבר אחרי עריכה
ל-JSON אין סובלנות: פסיק אחד חסר, פסיק אחד עודף, או גרש אחד חסר — והקובץ כולו מת, ומיקום השגיאה המדווח לעיתים קרובות מצביע על השורה הבאה. לכן חייבים לאמת אחרי עריכה; אל תסתמכו על העיניים.
שלוש פעולות העריכה בסיכון גבוה, לפי תדירות הצרות שהם גורמים:
| פעולה | תוצאה נפוצה | איך להימנע |
|---|---|---|
| הדבקת בלוק תצורה | מביאה פסיק עוקב או פיסוק ברוחב מלא | עצבו פעם אחת מיד לאחר ההדבקה |
| החלפת סדר המפתחות ידנית | פסיק עודף או חסר | השתמשו בפקודות הזזת שורות של העורך; אל תקלידו מחדש ביד |
| מחיקת האיבר האחרון במערך | משאירה ,] מאחור |
בדקו שהסוגריים מתאימים זה לזה אחרי המחיקה |
האימות פשוט: הדביקו למאמת המקוון וחפשו טקסט אדום, או הריצו פקודה אחת בטרמינל:
python3 -m json.tool config.json > /dev/null && echo OK
אם הוא מדפיס OK, הקובץ תקין. אם רוצים לאמת גם טיפוסי שדות (למשל ש-port חייב להיות מספר וש-name לא יכול להיות ריק), כתיבת JSON Schema אמינה הרבה יותר מעיני אדם.
5. במה .json נבדל מקרובי המשפחה שלו
| סיומת | ההבדל | האם מפענח תקני יכול לקרוא אותה |
|---|---|---|
.json |
JSON תקני | כן |
.jsonc |
מתיר הערות // ו-/* */ |
לא; תחילה יש להסיר את ההערות |
.json5 |
מתיר הערות, גרשיים בודדים, מפתחות ללא גרשיים, פסיקים עוקבים | לא; נדרש מפענח JSON5 |
.jsonl / .ndjson |
JSON עצמאי אחד בכל שורה; הקובץ כולו אינו JSON תקין | לא, לא כמכלול; חייבים לקרוא שורה אחר שורה |
אל תופתעו לראות הערות ב-tsconfig.json; הוא למעשה מטופל כ-.jsonc. אם תעבירו את אותו תוכן ל-JSON.parse הוא יעלה שגיאה. כשצריך להמיר ביניהם, השתמשו בJSON5 ל-JSON כדי להסיר הערות ופסיקים עוקבים בלחיצה אחת.
6. מתי הגיע הזמן להחליף פורמט אחסון
JSON מתאים לתרחישים שבהם "המבנה אינו קבוע, בני אדם צריכים לקרוא אותו, והוא נודד בין שפות". אם קובץ עובר עשרות MB, מבנה השדות יציב, וצריך שאילתות מותנות, הישארות ב-JSON היא רק עשיית צרות לעצמכם — עברו ל-SQLite, Parquet, או טענו אותו לתוך מסד נתונים; ביצועי קריאה/כתיבה נבדלים בסדרי גודל. לשיקולי הכדאיות הספציפיים, ראו פענוח וזרימה של JSON גדול.
שאלות נפוצות
איך בודקים קובץ JSON גדול מכדי להיפתח?
אל תכריחו אותו להיפתח בעורך; פתיחת קובץ JSON של 100 MB ב-VS Code תיתקע עד שתטילו ספק בבחירות החיים שלכם. השתמשו בשורת הפקודה כדי לבדוק את המבנה קודם: head -n 20 מוודא אם זה מערך, jq -r 'keys[]' רושם רק מפתחות ברמה העליונה, ו-jq 'length' סופר את אורך המערך. אף אחת מהפקודות האלה אינה טוענת את הקובץ כולו.
למה העריכות שלי ב-Notepad מונעות מהתצורה להיכנס לתוקף?
Windows Notepad עשוי להוסיף BOM בעת שמירה, וקובץ עם BOM נכשל בפענוח תצורה, כך שהתוכן שנערך לעולם לא נכנס לתוקף. ההמלצה במאמר היא להשתמש בעורכים כמו VS Code, Sublime או Notepad++, שמגיעים עם הדגשת תחביר JSON והתאמת סוגריים. אם כבר השתמשתם ב-Notepad, שמרו שוב כ"UTF-8 ללא BOM" ונסו מחדש.
אפשר להתייחס לקובץ JSON כאל JSON5 ולהוסיף הערות?
לא — מפענח תקני אינו מתיר הערות בקובץ .json ו-JSON.parse מעלה שגיאה מיד. הערות שייכות לקבצי .jsonc או .json5 שנקראים על ידי המפענח המתאים. קבצים כמו tsconfig.json מטופלים למעשה כ-.jsonc; אם תעבירו את אותו תוכן ל-JSON.parse, זה ייכשל.