בודק הבדלי JSON
השווה שני מסמכי JSON לפי מבנה, לא לפי טקסט: ראה כל מפתח שנוסף, הוסר או שוּנה בנתיב משלו, כולו בדפדפן שלך.
🔒 מעובד כולו בדפדפן שלך - שום דבר שתזין כאן לא יועלה לעולם.
תוצאה
הדבקת שני מסמכי JSON לכלי השוואת טקסט רגיל כמעט תמיד מפיקה תמונה שגויה: עיצוב מחדש, הזחה מחדש, או פשוט סריאליזציה של מפתחות אובייקט בסדר שונה ידליקו קטעים עצומים של טקסט 'משוּנה' גם כשהנתונים הבסיסיים זהים. השוואת טקסט משווה תווים ושורות; אין לה מושג ש- {"a":1,"b":2} ו- {"b":2,"a":1} משמעותם בדיוק אותו הדבר.
הכלי הזה מפענח תחילה את שני הקלטים כ-JSON, ואז יורד ברקורסיה על שני המבנים כפי שהנתונים מעוצבים בפועל: אובייקטים מושווים לפי שם המפתח, ומערכים לפי מיקום (השוואת מערכים מבוססת אינדקס היא ברירת מחדל פשוטה ומכוונת כאן — אין מצב של 'התייחס למערך זה כאל קבוצה בלתי ממוינת המזוהה על פי שדה id'). כל הבדל מדווח בנתיב משלו, כגון user.address.city, ומסווג כנוסף, הוסר או שוּנה, כשהערך הישן והחדש מוצגים יחד כך שלעולם אינך צריך לנחש מה התהפך.
נתיבים שלא שוּנו מוסתרים כברירת מחדל, כך שמידע גדול עם שינוי אחד קטן אינו קובר אותו ברעש, עם מתג לחשוף אותם מחדש כשרוצים את התמונה המלאה. האפשרות 'מיין מפתחות לפני השוואה' עוברת על אובייקטים ומציגה מפתחות בסדר אלפביתי קנוני — לאובייקט JSON מלכתחילה אין סדר מפתחות משמעותי, כך ששני אובייקטים עם אותם מפתחות וערכים ברצף שונה הם אותם נתונים, והאפשרות הזו הופכת את ההשוואה הזו, ואת הרשימה המתקבלת, למפורשת ודטרמיניסטית. זו בדיוק ההגדרה שמאחורי הפריסטים להשוואה ממוינת ולהשוואת תגובות API בכלי הזה.
אם אתה זקוק להשוואת שורות קלאסית זו לצד זו לטקסט רגיל, קוד, או כל תוכן שאינו JSON, השתמש במקום זאת בכלי המשלים Text Diff — הוא משווה שורה אחר שורה ומתאים כאשר ההבדלים ברווחים ובעיצוב כן משנים. הכלי הזה מיועד ל-JSON ספציפית, וכמו כל כלי באתר זה, הוא רץ כולו בדפדפן שלך: שום דבר שאתה מדביק לעולם אינו מועלה לשום מקום.