Was dieses JSON-Diff-Tool tut
Textdiff-Tools behandeln JSON als Zeilen, so dass ein neu geordneter Schlüssel oder eine neu formatierte Datei als eine Wand aus Rot und Grün angezeigt wird. Dieses Tool vergleicht stattdessen die Struktur zweier JSON-Dokumente. Es geht durch beide Bäume, meldet jeden hinzugefügten, entfernten und veränderten Wert mit seinem genauen JSON-Pfad, markiert Werte, deren -Typ sich geändert hat (eine Zahl, die zu einer Zeichenfolge wurde, ist eine klassische API-Regression) und zeigt das Ergebnis als zusammenklappbaren Baum oder eine flache Liste von Pfaden an. Der Vergleich läuft in einem Webworker, so dass große Nutzlasten reaktionsschnell bleiben.
So verwenden Sie es
- Das Originaldokument wird in A und das neue in B eingefügt.
- Lesen Sie die Zusammenfassungszähler: Hinzugefügt, entfernt, geändert und Typänderungen.
- Verwenden Sie die Ansicht tree, um nur die Zweige zu erweitern, die sich unterscheiden, oder wechseln Sie zu paths für eine kopierfreundliche Liste wie
$.items[2].price. - Aktivieren Sie ** Ignorieren Sie Reihenfolge**, wenn die Arrays eher Satze (Tags, Berechtigungen) als geordnete Listen sind.
- Setzen Sie match by key (z.B.
id) um Array-Elemente nach Identität zu paaren, so dass das Einfügen eines Elements nicht dazu führt, dass jedes folgende Element geändert aussieht.
Typische Anwendungen
- API-Regressionsprüfungen: Vergleich einer Antwort aus der Staging- und Produktion nach einem Einsatz.
- Config Drift: Differenz zwischen zwei Umgebungskonfigurationen oder Terraform JSON Plänen.
- Vertragstests: Spotfelder ein Backend stillschweigend entfernt oder umbenannt.
- Fixtures: Überprüfen Sie, was sich in einem Snapshot-Test geändert hat, bevor Sie ihn annehmen.
Tipps und Sonderfälle
- Die Reihenfolge der Objektschlüssel spielt keine Rolle; JSON-Objekte sind per Definition ungeordnet.
1und1.0sind gleiche Zahlen in JSON;"1"und1sind eine Typenänderung.- Bei der Ignorieren-Reihenfolge werden Primitiv-Arrays als Multiset verglichen, so dass Duplikate immer noch zählen.
- Match by key gilt nur für Arrays von Objekten, die alle diesen Schlüssel enthalten; andere Arrays fallen auf Indexvergleich zurück.
- Invalide JSON wird mit der Fehlermeldung des Parsers für die Seite gemeldet, die fehlgeschlagen ist.