איך להשתמש בו
- הדביקו את ה-JSON שלכם בתיבה, פתחו קובץ או לחצו על „נסו דוגמה” כדי לראות דוח שגיאות.
- קראו את התוצאה: הודעה ירוקה עבור JSON תקין, או השגיאה הראשונה עם השורה, העמודה וסמן מתחת לבעיה.
- תקנו את השגיאה שמתוארת ברמז ובדקו שוב; התוצאה מתעדכנת תוך כדי הקלדה.
- עבור JSON תקין, קראו את הנתונים הסטטיסטיים: סוג השורש, מספר המפתחות, עומק הקינון והגודל בבתים.
איך זה עובד
המאמת בודק תחביר לפי תקן JSON (RFC 8259 / ECMA-404) באמצעות מפענח ה-JSON המובנה בדפדפן, כך שמסמך שעובר כאן מתקבל על ידי JSON.parse של JavaScript ועל ידי מפענחים תואמי תקן בשפות אחרות. כאשר הפענוח נכשל, בודק מחמיר שנכתב עבור כלי זה עובר על הטקסט פעם אחת כדי למצוא את השגיאה הראשונה ואת השורה והעמודה המדויקות שלה, ואז מציג את השורה עם סמן ^ מתחת לבעיה.
ההערות מתמקדות בטעויות שאנשים באמת עושים כשכותבים JSON ידנית או מעתיקים מ-JavaScript: פסיק אחרי הפריט האחרון, מחרוזות במירכאות בודדות, מפתחות ללא מירכאות, הערות // או /* */, ערכים כמו NaN, Infinity או undefined, מעברי שורה גולמיים בתוך מחרוזות, ושני מסמכי JSON שהודבקו זה אחר זה (כמו בקבצי JSON Lines). מדווחת רק השגיאה הראשונה, משום שטעות אחת מבלבלת לעיתים קרובות את כל מה שאחריה.
הכלי בודק תחביר בלבד. הוא אינו מאמת מול JSON Schema, ולכן אינו יכול לדעת אם שדה חובה חסר. הוא גם אינו מתריע על מפתחות כפולים: התקן מתיר אותם, ורוב המפענחים שומרים את הערך האחרון.
הסטטיסטיקות סופרות מפתחות בכל אובייקט בכל רמה; העומק הוא 1 עבור אובייקט או מערך שטוחים וגדל באחד לכל רמת קינון.
דוגמאות
קונפיגורציה שהועתקה מ-JavaScript
{name: 'demo', debug: true,} נכשל בשורה 1, עמודה 2 עם ההודעה “Object keys must be in double quotes”. אחרי שמוסיפים מירכאות כפולות למפתח, ההרצה הבאה מצביעה על המחרוזת במירכאות יחידות, ואז על הפסיק העוקב.
קובץ לוג עם אובייקט אחד בכל שורה
הדבקת שתי שורות כגון {"id":1} ו-{"id":2} מדווחת “more content after the end of the JSON value” בשורה 2. כל שורה היא JSON תקין בפני עצמה (JSON Lines), אבל יחד צריך לעטוף אותן בסוגריים מרובעים [ ] ולהפריד ביניהן בפסיק.
בדיקת payload של API
תגובה בגודל 2 MB עוברת אימות תוך רגע ומציגה סוג שורש: מערך, 1,500 פריטים ברמה העליונה ועומק קינון של 4 – בדיקת שפיות מהירה לפני כתיבת קוד מולה.
שאלות נפוצות
האם הכלי הזה מאמת מול JSON Schema?
לא. הוא בודק שהטקסט הוא JSON תקין מבחינת תחביר. בדיקת שדות חובה, טיפוסים או פורמטים דורשת מאמת JSON Schema, שהכלי הזה לא כולל.
למה מוצגת רק שגיאה אחת?
אחרי שגיאת התחביר הראשונה המנתח לא יכול לדעת מה הכותב התכוון, כך ש“שגיאות” מאוחרות הן לרוב תופעות לוואי של הראשונה. תקנו את הבעיה שדווחה, והשגיאה הבאה, אם יש, תופיע מיד.
האם הערות או פסיקים עוקבים הם תקינים אי פעם?
הם אינם תקפים ב-JSON. פורמטים כמו JSON5 ו-JSONC (המשמשים בקבצי הגדרות של עורכים מסוימים) מתירים אותם, אבל מנתחי JSON תקניים דוחים אותם, ולכן הם מדווחים כאן כשגיאות.
האם ערך בודד כמו 42 או "hello" הוא JSON תקין?
כן. מאז RFC 7159 כל ערך JSON יכול להיות השורש, לא רק אובייקטים ומערכים. כלים ו-API ישנים מסוימים עדיין מצפים לאובייקט או מערך ברמה העליונה.
מדוע העמודה עשויה להיות שונה מהעמודה בעורך שלי?
עמודות נספרות ביחידות קוד UTF-16, כפי ש-JavaScript סופר אורך מחרוזת. אמוג'י ותווים נדירים מסוימים נספרים כשתיים, וטאב נספר כעמודה אחת, בעוד שעורכים עשויים להציג אותו רחב יותר.
פרטיות
האימות מתבצע כולו בדפדפן שלכם. ה-JSON שאתם מדביקים או פותחים אינו מועלה, נשמר או נכלל בניתוח נתונים.