Utilo

JSON-Diff

Vergleichen Sie zwei JSON-Dokumente strukturell. Ignorieren Sie Schlüssel- und Array-Reihenfolge, ordnen Sie Array-Elemente per id zu und sehen Sie hinzugefügte, entfernte, geänderte und typgeänderte Felder mit JSON-Pfaden in einem aufklappbaren Baum.

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

  1. Das Originaldokument wird in A und das neue in B eingefügt.
  2. Lesen Sie die Zusammenfassungszähler: Hinzugefügt, entfernt, geändert und Typänderungen.
  3. 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.
  4. Aktivieren Sie ** Ignorieren Sie Reihenfolge**, wenn die Arrays eher Satze (Tags, Berechtigungen) als geordnete Listen sind.
  5. 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.
  • 1 und 1.0 sind gleiche Zahlen in JSON; "1" und 1 sind 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.

Häufige Fragen

Werden meine Daten an einen Server gesendet?
  • Nein, nicht wirklich. Beide Dokumente werden lokal in Ihrem Browser analysiert und verglichen.
Wie unterscheidet sich das von dem Textdiff-Tool?

Der Textdiff vergleicht Zeilen. Dieses Tool versteht JSON, so dass Formatierung, Leerzeichen und Tastenfolge keinen Lärm erzeugen, und jeder Unterschied kommt mit einem Pfad.

Kann ich sehr große Dateien vergleichen?

Dateien von mehreren Megabyte funktionieren gut, weil der Diff vom Hauptthread abläuft. Der Baum macht sich faul, wenn man die Knoten ausdehnt.

Was bedeutet "Typ geändert"?

Der Wert existiert auf beiden Seiten, aber sein JSON-Typ unterscheidet sich, zum Beispiel ein Objekt, das durch ein Array ersetzt wird, oder null, das durch eine Zeichenfolge ersetzt wird.

Ja. Die gesamte Verarbeitung erfolgt direkt in deinem Browser mit JavaScript, Web Workern und Web-APIs. Nichts, was du eingibst, einfügst oder hochlädst, wird an unsere Server gesendet.

Diese Seite wurde automatisch aus dem Englischen übersetzt. Wenn dir ein Fehler auffällt, sag uns bitte Bescheid.