0

בודק JSON Diff

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

מעבד... 0%

תוצאה

הדבקה של שני מסמכי JSON בכלי רגיל ל-text-diff מייצרת כמעט תמיד תמונה שגויה: עיצוב מחדש, הזחה מחדש, או פשוט הסדרת מפתחות אובייקט בסדר שונה, יאיר קטעים עצומים של טקסט 'משונה' גם כאשר הנתונים הבסיסיים זהים. הבדל טקסט משווה תווים ושורות; אין לו מושג ש-{"a":1,"b":2} ו-{"b":2,"a":1} אומרות בדיוק אותו דבר.

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

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

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