ממיר חינם

פורמט JSON & Validator

עצב, יופי ואמת את JSON באופן מיידי בדפדפן שלך. אין צורך בהעלאה - פרטי לחלוטין ובחינם.

גרור ושחרר כאן קובץ JSON

תומך בקבצי json. או הדבק את ה-JSON שלך באזור למעלה.

אוֹ

אודות כלי זה

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

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

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

למה לעצב JSON

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

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

כיצד להשתמש

הדבק JSON, לחץ על פורמט.

  1. הדבק את ה-JSON שלך: הדבק JSON גולמי או קומפקטי באזור הקלט. גרור ושחרור של קובצי json עובד גם כן.
  2. בחר הזחה: ברירת המחדל היא 2 רווחים. השתמש ב-4 רווחים עבור פרויקטים העוקבים אחר המוסכמה הזו, או בטאבים אם הכלים במורד הזרם שלך דורשים אותם.
  3. פורמט: הקלט מנותח באמצעות JSON.parse כדי לאשר תקפות, ולאחר מכן מסודר עם JSON.stringify וההזחה שנבחרה. שגיאות בקלט מייצרות הודעת שגיאה לניתוח המזהה את מיקום הבעיה.
  4. העתק או הורד: העתק את ה-JSON המעוצב ללוח או שמור כ-json. הפלט זהה מבחינה מבנית לקלט אך עם רווח לבן עקבי.

מקרי שימוש נפוצים

פרטים טכניים

הפורמט משתמש ב-JSON.parse וב-JSON.stringify, אותו זוג כל זמן ריצה של JavaScript נשלח. הניתוח עוקב אחר RFC 8259 (מפרט ה-JSON הנוכחי), מקבל JSON קפדני אך דוחה מילות אובייקט של JavaScript, הערות, פסיקים נגררים והרחבות JSON5 אחרות.

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

מקרי קצה: מספרים גדולים מעבר ל- Number.MAX_SAFE_INTEGER מאבדים דיוק בעת ניתוח (מגבלה ידועה של JSON; השתמש בערכי מחרוזת עבור מזהים העולים על 2^53). בריחות Unicode במחרוזות נשמרות פשוטו כמשמעו. רווח לבן נגרר נמחק מכל שורה.

שיטות עבודה מומלצות

שאלות נפוצות

אילו סוגי שגיאות JSON מזהה הכלי הזה?
הכלי מזהה פסיקים חסרים, סוגריים/סוגריים ללא תואם, בריחה של מחרוזת לא חוקית, פסיקים נגררים, מחרוזות עם ציטוטים בודדים והפרות תחביר אחרות לפי מפרט RFC 8259 JSON.
האם הוא יכול להתמודד עם קבצי JSON גדולים מאוד?
כן. הפורמט מעבד JSON בדפדפן שלך באמצעות ניתוח מקורי של JavaScript, כך שהוא מטפל ביעילות בקבצים של עד כמה מגה-בייט. עבור קבצים גדולים במיוחד (50MB+), זמן העיבוד תלוי במכשיר שלך.
האם זה תומך ב-JSON עם הערות (JSONC)?
JSON סטנדרטי אינו מאפשר הערות. אם הקלט שלך מכיל הערות, המאמת יסמן אותן כשגיאות. לתמיכה ב-JSONC, הסר הערות לפני העיצוב.
האם העיצוב ישנה את ערכי הנתונים שלי?
לא. העיצוב מתאים רק את הרווחים וההזחה - סוגי הנתונים, הערכים והמבנה שלך נשארים זהים לחלוטין.
האם תכונות JSON5 נתמכות (הערות, פסיקים נגררים)?
לא. הפורמט עוקב אחר RFC 8259 בקפדנות. תכונות JSON5 גורמות לשגיאות ניתוח. כדי לעבוד עם JSON5, המר תחילה ל-JSON סטנדרטי באמצעות מנתח JSON5.
האם ה-JSON שלי מועלה לשרת?
לא. ניתוח ועיצוב מתרחשים לחלוטין בדפדפן שלך באמצעות פונקציות JSON מובנות.
האם מספרים גדולים יאבדו דיוק?
JavaScript מייצג מספרים כצפים של 64 סיביות, כך שמספרים שלמים מעל 2^53 (כ-9 קוודריליון) מאבדים דיוק. עבור מזהים או ערכי מספרים שלמים גדולים אחרים, אחסן אותם כמחרוזות ב-JSON.
האם אני יכול למיין את המפתחות בסדר אלפביתי?
JSON.stringify אינו ממיין מפתחות. השתמש בשלב מיון נפרד (או בפורמט עם תמיכה במיון) כדי לסדר את המפתחות באלפביתי לפני המחרוזת.