JSON-Vergleich

Zwei JSON-Dokumente strukturell statt textuell vergleichen

Struktureller Vergleich: Schlüsselreihenfolge und Einrückung werden ignoriert
Ursprüngliches JSON
Geändertes JSON
Unterschiede
JSON in beide Felder einfügen, um sie zu vergleichen.

Tool-Hinweise

Über JSON-Vergleich

Ein JSON-Vergleichswerkzeug stellt zwei Dokumente anhand ihrer Struktur gegenüber statt anhand des Textes, Sie sehen also, was sich in den Daten geändert hat und nicht in der Formatierung.

Fügen Sie das ursprüngliche JSON auf der einen Seite ein und das geänderte auf der anderen. Der Vergleich aktualisiert sich sofort zu einer Tabelle mit hinzugefügten, entfernten und geänderten Werten samt Pfad zu jedem einzelnen.

So verwenden Sie das JSON Diff Werkzeug

  1. Fügen Sie das ursprüngliche Dokument in das erste Eingabefeld ein und das geänderte in das zweite.
  2. Lesen Sie die Zusammenfassung oben, dargestellt als +N -N ~N, um den Umfang der Änderung einzuschätzen.
  3. Überfliegen Sie die Ergebnistabelle: Art der Änderung, Pfad, Wert vorher, Wert nachher.
  4. Verfolgen Sie einen Pfad wie a.b[2] zurück in Ihre Quelldatei. Schlüssel werden mit Punkten verbunden, Arrays über einen Index angesprochen.

Typische Anwendungsfälle

  • Konfiguration zwischen zwei Umgebungen vergleichen, etwa eine JSON-Konfiguration aus Staging gegen die aus der Produktion.
  • Nachvollziehen, wie sich eine API-Antwort zwischen zwei Versionen eines Dienstes verändert hat, bevor Sie sich auf die neue Struktur verlassen.
  • Untersuchen, was sich innerhalb einer package-lock.json oder eines anderen generierten Abhängigkeitsmanifests wirklich bewegt hat.
  • Prüfen, was ein Werkzeug verändert hat, nachdem es eine Infrastructure-as-Code-Datei oder ein Kubernetes-Manifest neu serialisiert hat.

Wie Pfade und Änderungsarten gemeldet werden

Jede Zeile zeigt auf genau eine Stelle im Dokument, geschrieben so, wie Sie den Wert im Code lesen würden, damit Sie ihn in der Quelldatei leicht wiederfinden.

  • Hinzugefügt: Der Pfad existiert nur im geänderten Dokument, und die Spalte Wert nachher zeigt den neuen Wert.
  • Entfernt: Der Pfad existiert nur im Original, und die Spalte Wert vorher zeigt, was dort stand.
  • Geändert: Der Pfad existiert auf beiden Seiten mit unterschiedlichen Werten, deshalb sind beide Spalten gefüllt.
  • Ein Pfad wie a.b[2] bedeutet: Schlüssel b innerhalb des Objekts a, dann das Element an Index 2 dieses Arrays.

Häufige Fragen zu JSON-Diff

Warum ergibt eine Neuformatierung der Datei keine Unterschiede?
Weil beide Seiten zuerst geparst werden. Einrückung, Schlüsselreihenfolge und Zeilenenden gehören nicht zur geparsten Struktur und tauchen deshalb nie als Unterschied auf.
Warum wird nach dem Einfügen eines Array-Elements alles Nachfolgende als geändert markiert?
Arrays werden über den Index verglichen. Ein Einschub verschiebt jedes spätere Element auf eine neue Position, und jede verschobene Position wird als Änderung gemeldet. Das liegt in der Natur des positionsbasierten Vergleichs und ist kein Mangel.
Was passiert, wenn eine Seite kein gültiges JSON ist?
Beide Eingaben müssen sich erfolgreich parsen lassen. Ist eine Seite fehlerhaft, erscheint eine Fehlermeldung statt eines Vergleichs.
Was wird angezeigt, wenn beide Dokumente übereinstimmen?
Das Werkzeug sagt ausdrücklich, dass es keine strukturellen Unterschiede gibt, statt ein leeres Ergebnis zu hinterlassen, das wie ein Fehlschlag aussehen könnte.
Werden meine Daten irgendwohin übertragen?
Nein. Analyse und Vergleich laufen lokal in Ihrem Browser mit der Bibliothek microdiff, nichts von dem, was Sie einfügen, geht an wetool.site oder einen anderen Server.

JSON-Vergleich gegen reinen Textvergleich

Ein Textvergleich stellt Zeichenzeilen gegenüber, deshalb erscheinen umsortierte Schlüssel, ein Wechsel von zwei auf vier Leerzeichen oder abweichende Zeilenenden als Unterschiede, obwohl die Daten identisch sind, und echte Änderungen gehen in diesem Rauschen unter. Ein JSON-Vergleich parst beide Dokumente zuerst und meldet nur bedeutungstragende Unterschiede, Schlüsselreihenfolge und Formatierung bleiben also außen vor. Nehmen Sie einen Textvergleich, wenn die exakten Bytes zählen, und diesen hier, wenn nur die Daten zählen.

Die Ergebnisse lesen, ohne sich täuschen zu lassen

Der strukturelle Vergleich beantwortet eine eng gefasste Frage sehr genau, deshalb hilft es zu wissen, was die Tabelle aussagt und was nicht.

  • Eine lange Liste von Änderungen, die sich in einem einzigen Array ballt, deutet meist auf einen einzelnen Einschub oder eine Umsortierung hin und nicht auf viele unabhängige Bearbeitungen.
  • Typen zählen: Die Zeichenkette 1 und die Zahl 1 sind verschiedene Werte und werden als Änderung gemeldet.