tigtools

JSON Diff

Fügen Sie zwei JSON-Dokumente ein, um genau zu sehen, welche Werte sich unterscheiden, aufgelistet nach Pfaden wie $.order.items[2].price.

Läuft in Ihrem Browser Keine Anmeldung erforderlich

Arrays vergleichen
Anzeigen

Anleitung

  1. Fügen Sie links das ursprüngliche JSON und rechts das geänderte JSON ein, oder testen Sie das Beispiel.
  2. Wählen Sie, wie Arrays verglichen werden: nach Position oder durch Abgleichen von Elementen, sodass ein eingefügtes Element nur einmal gemeldet wird.
  3. Lesen Sie die Unterschiede als Liste oder nebeneinander. Jeder Unterschied enthält einen Pfad von der Wurzel ($).
  4. Kopieren Sie den Bericht, um ihn in ein Ticket oder einen Code-Review einzufügen.

So funktioniert es

Beide Dokumente werden als Daten und nicht als Text geparst und verglichen. Objekte werden Schlüssel für Schlüssel verglichen, daher spielen die Reihenfolge der Schlüssel sowie Leerraum oder Einrückung keine Rolle. Zahlen werden nach ihrem Wert verglichen, daher sind 1 und 1.0 gleich.

Jeder Unterschied hat einen Pfad, der wie ein JSONPath-Ausdruck geschrieben ist: $ ist die Wurzel, .name ist eine Eigenschaft, [2] ist ein Array-Index, und Schlüssel, die keine einfachen Namen sind, werden in Anführungszeichen gesetzt, wie in $["first-name"]. Es werden vier Arten von Unterschieden gemeldet: hinzugefügt (nur rechts), entfernt (nur links), geändert (gleicher Typ, anderer Wert) und Typ geändert (zum Beispiel wurde die Zahl 44.9 zur Zeichenkette "44.90" oder ein Wert wurde zu null). Wenn ein ganzes Objekt oder Array hinzugefügt oder entfernt wird, wird es einmal unter seinem eigenen Pfad gemeldet und nicht einmal pro Feld.

Arrays werden standardmäßig nach Position verglichen: Element 0 mit Element 0, Element 1 mit Element 1. Wenn ein Element am Anfang eingefügt wird, sieht jedes spätere Element verändert aus. „Verschobene Elemente abgleichen“ richtet die beiden Arrays zunächst anhand der längsten gemeinsamen Teilfolge von gleichen Elementen aus, sodass eine Einfügung oder Löschung nur einmal gemeldet wird und die übrigen Elemente einander zugeordnet werden. Hinzugefügte Elemente verwenden ihren Index rechts, entfernte Elemente ihren Index links. Für sehr große Arrays (über etwa 2 Millionen Elementpaare) wird der Abgleich übersprungen; diese werden dann nach Position verglichen.

Schlüsselpfade in der Liste werden innerhalb jedes Objekts alphabetisch sortiert. Es werden bis zu 2.000 Unterschiede angezeigt; der kopierte Bericht enthält immer alle.

Beispiele

API-Änderung prüfen

Vergleichen Sie die Antwort von gestern und heute für dieselbe Bestellung. Der Diff zeigt: $.status wurde von "pending" zu "shipped" geändert, $.total hat den Typ von Zahl zu Zeichenkette geändert, $.coupon wurde entfernt und $.customer.phone wurde hinzugefügt.

Konfigurationsdrift

Fügen Sie die JSON-Konfiguration aus Staging und Produktion ein. Da die Schlüsselreihenfolge ignoriert wird, erscheinen nur echte Unterschiede wie $.cache.ttl 300 → 60, selbst wenn die Dateien von unterschiedlichen Tools gespeichert wurden.

Listen mit einem eingefügten Element

Eine Produktliste hat ein neues erstes Element erhalten. Bei einem Vergleich nach Position scheint jedes Produkt geändert zu sein; mit „Verschobene Elemente abgleichen“ ist das Ergebnis ein einzelnes „Hinzugefügt $[0]“.

Häufig gestellte Fragen

Wie unterscheidet sich dieses Tool von einem Text-Diff?

Ein Text-Diff vergleicht Zeilen, daher erscheinen umsortierte Schlüssel oder Formatierungsänderungen als Änderungen. Dieses Tool vergleicht die geparsten Daten, sodass nur Unterschiede bei Werten, Typen und Struktur gemeldet werden.

Warum zeigt ein Array nach einer Einfügung viele Änderungen?

Im Modus „Nach Position“ werden Elemente am selben Index verglichen, und eine Einfügung verschiebt jedes spätere Element. Wechseln Sie zu „Verschobene Elemente abgleichen“, um gleiche Elemente zuerst zuzuordnen.

Werden „1“ und 1 als gleich behandelt?

Nein. Eines ist ein String und das andere eine Zahl, daher wird der Unterschied als Typänderung gemeldet. Werte mit demselben Typ werden exakt verglichen.

Kann ich sehr große Dateien vergleichen?

Dateien mit einigen Megabyte funktionieren, aber alles wird im Arbeitsspeicher Ihres Browsers verarbeitet, daher können sehr große Dokumente auf Smartphones langsam sein.

Datenschutz

Beide Dokumente werden nur in Ihrem Browser geparst und verglichen. Nichts wird hochgeladen, gespeichert oder in Analysen einbezogen.