{ }JSONKit.tools

JSON Diff — zwei JSON-Dateien vergleichen

Zwei JSON-Dokumente strukturell vergleichen statt textuell: Schlüssel umsortieren oder neu formatieren erzeugt keinen Unterschied. Lesbar nebeneinander, als faltbarer Baum oder als flache Pfadliste.

Links

Rechts

Unterschiede

–

Über dieses Tool

Ein zeilenbasiertes Diff ist für JSON das falsche Werkzeug. Eine Datei neu formatieren oder ihre Schlüssel umsortieren, und jede Zeile wird rot, obwohl sich die Daten nie bewegt haben. Diese Seite parst beide Dokumente und vergleicht sie nach Pfad, gemeldet werden also nur echte Unterschiede: ein geänderter Wert, ein aufgetauchter Schlüssel, ein verschwundener Schlüssel. Array-Elemente werden nach Inhalt statt nach Index zugeordnet, deshalb erscheint das Löschen eines Elements aus einer langen Liste als einzelne Entfernung statt als Kaskade.

So wird es benutzt

  1. 1Die beiden Dokumente ins linke und rechte Panel einfügen.
  2. 2Das Ergebnis in der passenden Ansicht lesen — Geteilt, Baum oder Liste.
  3. 3Nur Änderungen einschalten, um alles Unveränderte wegzufalten, dann die Zusammenfassung kopieren.

Häufige Fragen

›Warum zeigt das Umsortieren von Schlüsseln keinen Unterschied?

Weil hier Struktur verglichen wird und nicht Text. JSON-Objekte sind per Definition ungeordnet, {"a":1,"b":2} und {"b":2,"a":1} halten also dieselben Daten und gelten als identisch. Ein zeilenbasiertes Diff-Werkzeug würde beide Dateien rot einfärben.

›Wie werden Arrays verglichen?

Elemente werden nach Inhalt zugeordnet, nicht nach Position; ein Element aus einer langen Liste zu entfernen wird deshalb als eine Entfernung gemeldet und nicht als „alles danach hat sich geändert". Wo eine Entfernung und eine Einfügung zusammenpassen, werden sie als ein geändertes Element gezeigt.

›Welche Ansicht soll ich nehmen?

Geteilt für den vertrauten Blick nebeneinander, Baum wenn das Dokument tief ist und unveränderte Äste wegfallen sollen, Liste wenn „was hat sich geändert" in ein Ticket soll. Alle drei sind derselbe Vergleich, nur anders dargestellt.

›Was macht „Nur Änderungen"?

In der geteilten Ansicht faltet es lange Strecken unveränderter Zeilen zu einer Markierung zusammen, so wie es ein Code-Review tut. Im Baum blendet es Äste ohne Inhalt aus. Die Listenansicht besteht ohnehin nur aus Änderungen.

›Kann ich zwei YAML- oder XML-Dateien vergleichen?

Erst nach JSON konvertieren — die Seiten YAML zu JSON und XML zu JSON erledigen das mit einem Einfügen — und die Ergebnisse dann hier vergleichen. Der Vergleich selbst ist formatunabhängig.

›Wird irgendetwas hochgeladen?

Nein. Beide Dokumente werden im Browser geparst und verglichen, und genau das macht es unbedenklich, eine Produktivkonfiguration gegen eine Staging-Konfiguration zu diffen.