JSON vergleichen

Zwei JSON tief vergleichen und alle Unterschiede als übersichtliche Pfad-Liste anzeigen.

Unterschiede

Auf deiner Website einbetten

Diesen Rechner kostenlos & cookiefrei auf deiner Seite einbinden – einfach den Code kopieren:

Vorschau

Mehr dazu: Tools einbetten

Über HTTP
https://utilico.de/api/rechner/json-diff?a=%7B%22name%22%3A%22Anna%22%2C%22alter%22%3A30%2C%22stadt%22%3A%22Berlin%22%7D&b=%7B%22name%22%3A%22Anna%22%2C%22alter%22%3A31%2C%22land%22%3A%22DE%22%7D antwortet mit JSON – dieselben Feldnamen, ohne Anmeldung. Dabei rechnet unser Server; auf dieser Seite rechnet dein Browser. Mehr dazu: JSON-API.

Mit JSON vergleichen findest du in Sekunden heraus, was sich zwischen zwei JSON-Dokumenten geändert hat. Du fügst JSON A und JSON B ein, das Tool vergleicht beide rekursiv Schlüssel für Schlüssel – bis in verschachtelte Objekte und Arrays hinein – und listet jede Abweichung mit vollständigem Pfad auf. Praktisch, um API-Antworten, Konfigurationsdateien oder zwei Versionsstände einer Datenstruktur gegenüberzustellen, ganz ohne Kommandozeile.

So funktioniert JSON vergleichen

Du trägst zwei JSON-Texte ein: JSON A und JSON B. Das Ergebnis aktualisiert sich live bei jeder Eingabe. Lässt sich einer der beiden Texte nicht als JSON lesen, erscheint „JSON A ist ungültig.“ beziehungsweise „JSON B ist ungültig.“

Sind beide gültig, vergleicht das Tool sie rekursiv Schlüssel für Schlüssel, auch in verschachtelten Objekten und Arrays. Jede Abweichung landet als eigene Zeile: + für einen Wert, der nur in JSON B steht, - für einen Wert, der nur in JSON A steht, und ~ für einen geänderten Wert. Sind beide JSON komplett gleich, zeigt das Tool „Die beiden JSON sind gleich.“

Pfade, Arrays und Sonderfälle

Jeder Unterschied bekommt einen Pfad: Felder der obersten Ebene heißen einfach alter, verschachtelte Felder werden mit Punkt verbunden, etwa adresse.plz. Neue Felder zeigen auch den Wert (+ land = "DE"), entfernte Felder nur den Pfad ohne Wert (- stadt).

Arrays vergleicht das Tool nach Index, nicht nach Inhalt: Fügst du mitten im Array ein Element ein, verschieben sich alle folgenden Positionen – statt einer Ergänzung erscheinen mehrere geänderte Zeilen. Wechselt ein Wert zwischen Array und Objekt, meldet das Tool „Typ geändert“ und vergleicht dort nicht weiter in die Tiefe.

Beispiel

JSON A ist {"name":"Anna","alter":30,"stadt":"Berlin"}, JSON B ist {"name":"Anna","alter":31,"land":"DE"}. Das Feld name ist in beiden gleich „Anna“ und taucht deshalb gar nicht im Ergebnis auf. Bei alter ändert sich der Wert von 30 auf 31, stadt gibt es nur in JSON A, land nur in JSON B.

Das Ergebnis zeigt „Unterschiede: 3“ und darunter drei Zeilen: ~ alter: 30 → 31, - stadt und + land = "DE".

Wofür brauche ich das?

  • API-Antworten vergleichen: Zwei Aufrufe derselben Schnittstelle zu unterschiedlichen Zeitpunkten oder Umgebungen zeigen dir sofort, welche Felder sich geändert haben.
  • Konfigurationsdateien prüfen: Zwei Versionen einer JSON-Konfiguration wie einer package.json oder einer Feature-Flag-Datei lassen sich gegenüberstellen, bevor du sie zusammenführst.
  • Testdaten und Fixtures abgleichen: Erwartetes und tatsächliches JSON-Ergebnis eines Tests vergleichst du Feld für Feld, auch wenn sie tief verschachtelt sind.
  • Datenmigrationen kontrollieren: Nach einer Transformation zeigt der Vergleich, ob wirklich nur die gewollten Felder verändert wurden.

Häufige Fragen

Werden meine Eingaben gespeichert?

Nein. Der Vergleich läuft vollständig lokal in deinem Browser, es wird nichts an einen Server gesendet.

Spielt die Reihenfolge der Felder eine Rolle?

Bei Objekten nicht: Felder werden anhand ihres Namens verglichen, unabhängig von ihrer Position. Bei Arrays zählt dagegen die Position, also der Index.

Warum zeigt ein entferntes Feld keinen alten Wert an?

Bei entfernten Feldern (Zeilen mit -) steht nur der Pfad, weil der alte Wert weiterhin in JSON A nachzulesen ist. Bei neuen Feldern (Zeilen mit +) zeigt das Tool dagegen den neuen Wert direkt an.

Was bedeutet „Typ geändert“ im Ergebnis?

Diese Meldung erscheint, wenn an derselben Stelle einmal ein Array und einmal ein normales Objekt steht, etwa wenn ein Feld vorher eine Liste war und jetzt ein Objekt ist. Das Tool vergleicht die beiden dann nicht weiter im Detail, sondern markiert nur die Änderung.

Muss JSON A oder B ein Objekt sein?

Nein, auch ein Array wie [1,2,3] oder ein einzelner Wert wie 5 ist gültiges JSON. Unterscheiden sich zwei einfache Werte schon an der Wurzel, zeigt das Ergebnis „(root)“ als Pfad.