JSON Diff: JSON-Objekte vergleichen

Füge zwei JSON-Dokumente ein und sieh genau, was sich geändert hat. Jeder Unterschied wird mit seinem Pfad aufgelistet, etwa $.users[2].email, und Formatierung oder Schlüsselreihenfolge lösen nie falschen Alarm aus.

Läuft im BrowserOhne AnmeldungKein Upload

Die Reihenfolge der Schlüssel wird immer ignoriert.

Anleitung: JSON Diff

  1. Füge links das ursprüngliche und rechts das geänderte JSON ein oder öffne zwei Dateien.
  2. Syntaxfehler werden unter dem jeweiligen Feld mit Zeile und Spalte angezeigt, damit du sie schnell beheben kannst.
  3. Lies die Tabelle Geänderte Pfade: Jede Zeile zeigt, ob ein Wert hinzugefügt, entfernt oder geändert wurde, mit altem und neuem Wert.
  4. Aktiviere Array-Reihenfolge ignorieren, wenn Listen Mengen sind, zum Beispiel Tags oder Berechtigungen.
  5. Scroll zur Ansicht nebeneinander, um die Änderungen im Kontext zu sehen, oder kopiere die Änderungsliste als JSON.

Warum ein strukturelles JSON-Diff besser ist als ein Text-Diff

Ein reines Text-Diff vergleicht Zeichen und Zeilen. Zwei JSON-Dateien mit denselben Daten können daher völlig unterschiedlich aussehen, wenn eine minifiziert, anders eingerückt oder mit anderer Schlüsselreihenfolge geschrieben ist. Dieses Tool parst zuerst beide Dokumente und vergleicht die Daten: Objekte werden Schlüssel für Schlüssel unabhängig von der Reihenfolge verglichen, Zahlen, Strings, Booleans und null nach ihrem Wert. Gemeldet werden nur echte Änderungen.

So werden Änderungen gemeldet

Jeder Unterschied erhält eine Position im Stil von JSONPath, etwa $.owner.email oder $.items[3].price, und einen von drei Typen:

  • hinzugefügt: Der Schlüssel oder das Array-Element existiert nur im geänderten JSON.
  • entfernt: Es existiert nur im ursprünglichen JSON.
  • geändert: Es existiert in beiden, aber der Wert unterscheidet sich, einschließlich Typänderungen, etwa wenn aus einem String eine Zahl wird.

Arrays werden mit einem Longest-Common-Subsequence-Algorithmus ausgerichtet. Ein am Anfang einer Liste eingefügtes Element wird daher als eine einzige Hinzufügung gemeldet, statt alle folgenden Elemente als geändert zu markieren.

Array-Reihenfolge ignorieren

Viele APIs liefern Listen, deren Reihenfolge keine Bedeutung hat, etwa Rollen, Tags oder IDs. Mit Array-Reihenfolge ignorieren werden Arrays als Sammlungen verglichen: Ein Element gilt nur dann als hinzugefügt oder entfernt, wenn es auf der anderen Seite kein gleiches Gegenstück hat. Die Ansicht nebeneinander sortiert die Array-Elemente dann so, dass gleiche Listen bündig stehen.

Typische Anwendungsfälle

Vergleiche API-Antworten zwischen Staging und Produktion, prüfe, was eine Migration in einer Konfigurationsdatei geändert hat, sieh dir Unterschiede zwischen zwei package.json- oder tsconfig-Dateien an und debugge Snapshot-Tests.

Häufig gestellte Fragen

Spielt die Schlüsselreihenfolge beim Vergleich von JSON eine Rolle?
Nein. JSON-Objekte sind ungeordnet, daher werden {"a":1,"b":2} und {"b":2,"a":1} als gleich gemeldet. Die Array-Reihenfolge zählt standardmäßig, weil Arrays geordnet sind, aber du kannst das mit Array-Reihenfolge ignorieren abschalten.
Wird mein JSON auf einen Server hochgeladen?
Nein. Beide Dokumente werden in deinem Browser geparst und verglichen. Nichts wird über das Netzwerk gesendet, daher ist das Tool sicher für API-Antworten mit Tokens oder Kundendaten.
Was bedeuten Pfade wie $.users[2].email?
$ ist die Wurzel des Dokuments, .users ein Schlüssel und [2] das dritte Element eines Arrays (Indizes beginnen bei 0). Schlüssel mit Leer- oder Sonderzeichen stehen in eckigen Klammern, etwa $["first name"].
Ist 1 gleich 1.0?
Ja. Beide werden zur selben Zahl geparst und daher nicht als Unterschied gemeldet. Eine Zahl und ein String, etwa 1 und "1", sind verschieden und werden als geändert gemeldet.
Kann ich JSON mit Kommentaren oder abschließenden Kommas vergleichen?
Standard-JSON erlaubt sie nicht, daher wird eine solche Eingabe mit genauer Zeile und Spalte markiert. Entferne die Kommentare oder Kommas oder bereinige das Dokument zuerst im JSON Formatter.

Ähnliche Tools