100 % lokal — Ihre Daten verlassen nie Ihren Browser

JSON-Diff — sehen, welcher Wert sich änderte

Zwei JSON-Dokumente vergleichen. Einrückung und Schlüsselreihenfolge werden neutralisiert — was Sie sehen, ist der echte Unterschied, bis zur Ziffer.

Sofort Privat Null Cookies

Original

Geändert

Unterschiede

Was dieses Werkzeug tut

Es normalisiert beide Seiten — zwei Leerzeichen Einrückung, Schlüssel sortiert —, vergleicht sie dann Zeile für Zeile und zeigt das Ergebnis als Unified Diff:

@@ -2,4 +2,4 @@
   "host": "localhost",
-  "port": 8080,
+  "port": 3000,
   "tls": true

- ist das Original, + das Geänderte, und die @@-Zeile nennt den Bereich. Es ist das Format, das git diff und patch sprechen.

Was als Unterschied zählt

Unterschied?
Einrückung, Zeilenumbrüchenein
Schlüsselreihenfolge in einem Objektstandardmäßig nein
Elementreihenfolge in einem Arrayja
Ein geänderter Wertja

Objekte und Arrays werden verschieden behandelt, weil JSON sie verschieden behandelt: ein Objekt ist eine ungeordnete Menge von Paaren, ein Array eine Folge. Die Schlüssel eines Objekts umzuordnen ergibt denselben Wert; die Elemente eines Arrays umzuordnen einen anderen.

Bis zur letzten Ziffer

{ "id": 12345678901234567890 }
{ "id": 12345678901234567891 }

Diese beiden Dokumente unterscheiden sich, und dieses Werkzeug sagt es.

Das gehört geschrieben, weil es nicht immer so war. Beide Seiten über ein gewöhnliches JSON-Parsen zu normalisieren schickte jede Zahl durch eine Gleitkommazahl doppelter Genauigkeit, und die beiden Kennungen — zwanzig Ziffern, nur in der letzten verschieden — fielen zu einem Wert zusammen. Der Diff kam leer zurück, was sich als kein Unterschied liest.

Ein leerer Diff ist eine Behauptung, kein Achselzucken. Ein Vergleichswerkzeug ist genau das, von dem man verlangt zu sehen, was das Auge nicht sieht: beide Seiten werden nun verlustfrei gelesen und so verglichen, wie sie geschrieben stehen.

Doppelte Schlüssel werden gemeldet

Wiederholt eines der beiden Dokumente einen Schlüssel, hält der Vergleich an und sagt es — genau wie der JSON-Formatierer. Nur den letzten jedes Schlüssels zu behalten, was die meisten Parser lautlos tun, ließe einen echten Unterschied zwischen den Dateien verschwinden, bevor der Vergleich überhaupt beginnt.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Warum wird umsortiertes JSON als identisch angezeigt?
Weil ein JSON-Objekt eine ungeordnete Menge von Name/Wert-Paaren ist: zwei Dokumente, deren Schlüssel in anderer Reihenfolge stehen, tragen denselben Wert. Beide Seiten werden vor dem Vergleich sortiert. Schalten Sie die Einstellung aus, wenn Sie gerade das Umsortieren sehen wollen — vor und nach einem Werkzeug, das die Datei umgeschrieben hat, etwa.
Warum sind umsortierte Array-Elemente ein Unterschied?
Weil die Reihenfolge eines Arrays *Teil* seines Werts ist. `["read", "write"]` und `["write", "read"]` sind zwei verschiedene JSON-Werte, und ein Vergleich, der das verbärge, verbärge eine Änderung in der Reihenfolge von Migrationen, von Pipeline-Schritten, von allem Sequenziellen.
Was, wenn derselbe Schlüssel in einer der Dateien zweimal vorkommt?
Er wird gemeldet statt stillschweigend entschieden — dieselbe Antwort wie beim JSON-Formatierer. Zwei Dokumente zu vergleichen und dabei nur den letzten jedes wiederholten Schlüssels zu behalten, ließe einen echten Unterschied zwischen den Dateien verschwinden.

Ähnliche Konverter