JSON-Vergleich
Fügen Sie zwei JSON-Dokumente ein. Sie sehen pfadgenau, welche Felder hinzugefügt, entfernt und geändert wurden; Arrays vergleichen Sie nach Position, nach einem Schlüsselfeld oder als ungeordnete Menge. Bei fehlerhaftem JSON zeigt das Werkzeug Zeile und Spalte des Fehlers.
Fügen Sie in jedes Feld ein gültiges JSON-Dokument ein (Objekt, Array oder einzelnen Wert). Die Reihenfolge der Schlüssel spielt keine Rolle.
Der Vergleich läuft in Ihrem Browser; das eingefügte JSON wird nirgendwohin gesendet.
Vergleichsregeln
- Pfade beginnen an der Wurzel $: $.kunde.name, $.positionen[0].menge; Schlüssel mit Leerzeichen oder Punkten werden als $["a b"] geschrieben. Beim Zuordnen über das Schlüsselfeld heißt ein Array-Element $.positionen[id=A-1].
- Die Schlüsselreihenfolge in Objekten wird ignoriert. Zahlen werden nach Wert verglichen (1 und 1.0 sind gleich); Zeichenketten exakt.
- Eine Typänderung („77“ → 77, null → Objekt) wird gesondert gezählt und nicht weiter aufgelöst. Ein hinzugefügtes oder entferntes Objekt/Array wird als ein einziger Unterschied geschrieben.
- Im Modus „ungeordnete Menge“ erzeugen übereinstimmende Elemente keinen Unterschied; nicht zugeordnete werden an ihrer Position im alten Array zu „entfernt“ und an ihrer Position im neuen zu „hinzugefügt“.
- JSON wird streng gelesen (RFC 8259): Kommentare, abschließende Kommas, einfache Anführungszeichen und Schlüssel ohne Anführungszeichen sind Fehler. Bei doppeltem Schlüssel gilt der letzte Wert und es erscheint eine Warnung.
Der Vergleich beruht auf Struktur und Wertgleichheit; er kennt weder Bedeutung noch Einheit noch Geschäftsregel eines Feldes. Ein Unterschied ist nicht immer ein Fehler (zum Beispiel ein Zeitstempel oder eine erzeugte Kennung). Seien Sie beim Kopieren des Berichts vorsichtig, wo Sie vertrauliche Daten teilen.
Lassen Sie uns gemeinsam den Vertrag, die Versionierung und die Abweichungskontrolle für die Nachrichten zwischen Ihren Systemen gestalten.
Gespräch anfragen01
So geht's
A
Fügen Sie das alte JSON in Feld A und das neue JSON in Feld B ein (oder laden Sie das Beispiel).
B
Wählen Sie den Modus für Arrays: nach Position, nach Schlüsselfeld (zum Beispiel id) oder als ungeordnete Menge.
C
Sehen Sie sich die Zusammenfassung und die pfadbezogene Liste der Unterschiede an; kopieren Sie den Bericht. Bei fehlerhaftem JSON wird der Fehler mit Zeile und Spalte angezeigt.
02
Ein Strukturvergleich, kein Textvergleich
Ein zeilenweiser Textvergleich erzeugt bedeutungslose Unterschiede, sobald sich Schlüsselreihenfolge oder Leerraum ändern. Dieses Werkzeug parst beide Dokumente und vergleicht sie als Struktur: Schlüsselreihenfolge und Formatierung sind keine Unterschiede, Feldpfade und Werte schon. Das Ergebnis beantwortet direkt die Frage „Welches Feld wurde hinzugefügt, entfernt oder geändert?“.
Eine Typänderung wird gesondert gezeigt, weil sie in Integrationen zu den heimtückischsten Fehlern gehört: „77“ (Text) und 77 (Zahl) verhalten sich in vielen Systemen unterschiedlich, sehen für das Auge aber oft gleich aus.
03
Arrays vergleichen
Arrays sind der schwierigste Teil von JSON, denn zwei Arrays brauchen eine Definition von „demselben Element“. Im Modus „nach Position“ wird Element i mit Element i verglichen: Ändert sich die Reihenfolge, wirkt jedes Element geändert. Im Modus „nach Schlüsselfeld“ werden Objektelemente über den Wert eines Feldes (zum Beispiel id, sku) zugeordnet, sodass nur wirklich hinzugefügte, entfernte oder geänderte Elemente erscheinen.
Der Modus „ungeordnete Menge“ vergleicht Arrays mit bedeutungsloser Reihenfolge (wie eine Tag-Liste) über tiefe Gleichheit. Hat sich ein Element geändert, erscheint es in diesem Modus als „eines entfernt, eines hinzugefügt“, weil nichts erkennen lässt, welche Elemente zusammengehören. Für Elemente, bei denen Reihenfolge und Identität zählen, bevorzugen Sie den Schlüsselfeld-Modus.
04
Wofür ist das in Integrationen nützlich?
Typische Anwendungen sind der Vergleich der Antwort einer neuen API-Version mit der alten, das Erkennen von Abweichungen vom Vertrag, der Vergleich der Konfiguration in zwei Umgebungen (Test und Produktion) oder desselben Datensatzes in zwei Systemen. Der Bericht lässt sich in ein Ticket oder einen Änderungsantrag einfügen.
Dynamische Felder (Zeitstempel, erzeugte Kennungen, Laufnummern) zeigen bei jedem Vergleich einen Unterschied; diese müssen Sie von Hand herausfiltern. Für große, dauerhaft laufende Vergleiche empfiehlt sich statt dieses Werkzeugs ein automatisierter Vertragstest.
Häufige Fragen
- Zählt eine andere Schlüsselreihenfolge als Unterschied?
- Nein. In Objekten ist die Schlüsselreihenfolge in JSON bedeutungslos und wird ignoriert; verglichen werden nur Feldpfade und Werte. In Arrays ist die Reihenfolge bedeutsam (außer im Modus „ungeordnete Menge“).
- Welchen Modus soll ich für Arrays wählen?
- Nach Position für Arrays mit bedeutsamer Reihenfolge (Zeitreihen, Schritte). Nach Schlüsselfeld für Datensatzlisten mit Kennung (Positionen, Benutzer), dabei den Feldnamen eingeben. Ungeordnete Menge für Listen mit bedeutungsloser Reihenfolge, etwa Tags.
- Warum erscheint im Schlüsselfeld-Modus der Hinweis „nach Position verglichen“?
- Fehlt das Schlüsselfeld in einem Element, ist ein Element kein Objekt oder wiederholt sich derselbe Schlüsselwert, wäre die Zuordnung nicht verlässlich; das Werkzeug vergleicht dieses Array nach Position und nennt die betroffenen Arrays. Für Listen aus Nicht-Objekten wie Zahlen und Zeichenketten probieren Sie den Modus „ungeordnete Menge“.
- Sind 1 und 1.0 oder 1 und „1“ dasselbe?
- 1 und 1.0 sind dieselbe Zahl, es gibt keinen Unterschied. 1 (Zahl) und „1“ (Zeichenkette) sind verschiedene Typen und werden als „Typ geändert“ angezeigt.
- Kann ich sehr große JSON-Dateien vergleichen?
- Jede Seite darf höchstens 5 Millionen Zeichen haben; da es im Browser läuft, kann die Seite bei sehr großen Dateien langsam werden. Es werden höchstens die ersten 5.000 Unterschiede aufgelistet, die Summen sind aber vollständig.
- Wird das eingefügte JSON irgendwohin gesendet?
- Nein. Parsen und Vergleichen laufen vollständig in Ihrem Browser; es wird keine Netzwerkanfrage gestellt.
Nachrichtenverträge absichern
Lassen Sie uns gemeinsam den Vertrag, die Versionierung und die Abweichungskontrolle für die Nachrichten zwischen Ihren Systemen gestalten.