JSON-Diff-Vergleich
Vergleichen Sie zwei JSON-Dokumente und sehen Sie sofort, welche Schlüssel hinzugefügt, entfernt oder geändert wurden, aufgelistet nach Schlüsselpfad. Objekte und Arrays werden rekursiv durchlaufen, und selbst Typabweichungen werden als Änderung angezeigt. Alles läuft im Browser ab, nichts wird an einen Server gesendet.
Tipps
- Schlüsselpfade werden in Punkt-/Klammernotation wie `user.address[0].city` angezeigt, sodass Sie sofort erkennen, welcher verschachtelte Wert sich geändert hat – egal wie tief die JSON-Struktur verschachtelt ist.
- Arrays werden verglichen, indem Elemente am gleichen Index einander zugeordnet werden. Beachten Sie, dass bereits eine reine Umsortierung der Array-Elemente dazu führt, dass alle Elemente als geändert erkannt werden.
- Enthält derselbe Schlüssel in einem Dokument eine Zeichenkette und im anderen ein Objekt, wird diese Typabweichung ebenfalls als Änderung gemeldet, wobei beide Rohwerte nebeneinander angezeigt werden.
- Beim Vergleich von API-Antworten vor und nach einem Deployment sollten Felder, die sich ohnehin jedes Mal ändern (z. B. Zeitstempel oder Request-IDs), vorab entfernt werden, damit Sie sich nur auf die wirklich relevanten Unterschiede konzentrieren.
- Selbst bei JSON mit sehr vielen unveränderten Werten wird nur die Anzahl der übereinstimmenden Blattwerte angezeigt, damit das Ergebnis übersichtlich bleibt statt unübersichtlich zu werden.
Häufig gestellte Fragen
Übrigens – Wie sich der Schlüsselabgleich bei CSV-Diff und JSON-Diff unterscheidet
Unser CSV-Diff-Vergleich (dev.csv.csv_diff) vergleicht Zeilen und Zellen anhand einer einzigen festgelegten Schlüsselspalte, um jede Zeile zu identifizieren. JSON besitzt keine flache Zeilen-Spalten-Struktur – es erlaubt verschachtelte Objekte und Arrays –, sodass sich der zugrunde liegende Abgleichsalgorithmus trotz gleicher Bezeichnung „Diff-Vergleich" deutlich unterscheidet. Statt einer Schlüsselspalte verwendet dieses Tool einen rekursiv von der Wurzel bis zu jedem Blatt aufgebauten „Schlüsselpfad" als Vergleichseinheit.
Arrays sind beim JSON-Diff der heikelste Teil. Eine CSV-Zeile lässt sich eindeutig über ihren Schlüsselspaltenwert identifizieren, JSON-Array-Elemente besitzen jedoch keinen garantierten Bezeichner. Dieses Tool ordnet Elemente einfach nach Index (Reihenfolge des Auftretens) zu – ein Design, das eher zum Verfolgen von Änderungen an Objektstrukturen oder primitiven Werten (etwa in Konfigurationsdateien oder API-Antworten) geeignet ist als zum Verfolgen von Hinzufügungen und Entfernungen innerhalb eines Arrays.
In der Praxis findet sich ein ähnlicher Gedanke in Continuous-Integration-Pipelines, die automatisch prüfen, ob sich der Antwortvertrag einer REST-API geändert hat. Dieses Tool legt Wert auf die Bequemlichkeit, vollständig im Browser zu laufen, doch das zugrunde liegende Konzept überschneidet sich mit Snapshot-Tests und Contract-Testing: JSON-Strukturunterschiede maschinell zu erkennen, ist eine wiederkehrende Aufgabe in vielen Phasen der Softwareentwicklung.