JSON vergleichen
JSON vergleichen ohne Formatierungsrauschen: Das Werkzeug zeigt jeden inhaltlichen Unterschied mit Pfad, Art und Werten und erzeugt einen JSON Patch.
| Pfad | Art | Wert in A | Wert in B |
|---|
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
JSON Diff: so werden Unterschiede gefunden
Mit diesem Werkzeug können Sie zwei JSON-Dokumente strukturell vergleichen. Anders als ein normaler Textvergleich achtet der JSON Diff nicht auf Einrückung, Zeilenumbrüche oder die Reihenfolge der Schlüssel in Objekten, sondern nur auf die Daten. Jeder Unterschied erscheint mit seinem Pfad, etwa $.adresse.ort, der Art der Änderung (hinzugefügt, entfernt, geändert, Typ geändert) und den Werten auf beiden Seiten. So lassen sich JSON-Dateien vergleichen, ohne dass eine andere Formatierung lauter Scheinunterschiede erzeugt.
Typische Einsätze: Antworten einer API vor und nach einem Update gegenüberstellen, Konfigurationen aus Test und Produktion abgleichen oder prüfen, was ein Skript an einer Datei verändert hat. Achten Sie auf die Zeilen „Typ geändert“: Wenn aus der Zahl 12 der Text "12" wird, sieht das im Editor harmlos aus, bricht aber oft den Code, der die Daten liest. Unten erzeugt das Werkzeug zusätzlich einen JSON Patch nach RFC 6902, also eine Liste von add-, remove- und replace-Operationen, die A in B überführt.
Arrays werden standardmäßig nach Position verglichen: Element 0 mit Element 0 und so weiter. Wird vorne ein Element eingefügt, meldet der Vergleich deshalb viele Änderungen. Mit „Reihenfolge ignorieren“ zählt nur, ob ein Element vorkommt; das passt für Listen wie Tags oder Rollen. Grenzen: Sehr große Zahlen über 253 verlieren beim Einlesen an Genauigkeit, doppelte Schlüssel in einem Objekt werden wie in JavaScript auf den letzten Wert reduziert. Zum Aufbereiten eignet sich vorher JSON formatieren.
Anleitung: JSON vergleichen in 5 Schritten
- Den alten Stand in „JSON A (Ausgangsstand)“ und den neuen in „JSON B (neuer Stand)“ einfügen.
- Wählen, ob Arrays nach Position verglichen werden oder die Reihenfolge ignoriert wird.
- Unter „Schreibweise der Pfade“ JSONPath, JSON Pointer, JavaScript, Python oder jq einstellen und bei Bedarf Groß- und Kleinschreibung ignorieren.
- In der Tabelle jeden Unterschied mit Pfad, Art und Werten ablesen.
- Den JSON Patch (RFC 6902) von A nach B kopieren, um die Änderung automatisch anzuwenden.
Typische Anwendungsfälle
- API-Update prüfen: Antworten einer Schnittstelle vor und nach einem Release gegenüberstellen und Typänderungen wie 12 zu "12" finden.
- Konfigurationen abgleichen: Einstellungen aus Test und Produktion vergleichen, ohne dass unterschiedliche Einrückung stört.
- Skriptergebnisse kontrollieren: Sehen, was ein Migrations- oder Importskript an einer JSON-Datei verändert hat.
- Listen ohne feste Reihenfolge: Tags, Rollen oder Berechtigungen mit „Reihenfolge ignorieren“ vergleichen.
Häufige Fragen
Was ist der Unterschied zu einem normalen Textvergleich?
Ein Textvergleich meldet jede geänderte Zeile, auch wenn nur die Einrückung oder die Reihenfolge der Schlüssel anders ist. Der JSON Diff liest beide Dokumente ein und vergleicht die Daten. Gleiche Inhalte in anderer Formatierung gelten als gleich.
Wie werden Arrays verglichen?
Standardmäßig nach Position. Wählen Sie „Reihenfolge ignorieren“, wenn es nur darauf ankommt, welche Elemente enthalten sind. Dann werden fehlende Elemente als entfernt und neue als hinzugefügt gemeldet, egal an welcher Stelle sie stehen.
Was ist ein JSON Patch?
Ein Format nach RFC 6902, das Änderungen als Liste von Operationen beschreibt, etwa {"op": "replace", "path": "/aktiv", "value": false}. Viele Bibliotheken können einen solchen Patch auf ein Dokument anwenden. Die Pfade sind JSON Pointer nach RFC 6901.
Warum wird „12“ und 12 als Unterschied gemeldet?
Weil das eine ein Text und das andere eine Zahl ist. In JSON sind das verschiedene Typen, und viele Programme behandeln sie unterschiedlich. Der Vergleich zeigt solche Fälle als „Typ geändert“.
Werden meine Daten hochgeladen?
Nein. Beide Dokumente werden nur in Ihrem Browser verglichen und nicht übertragen oder gespeichert.
Wie vergleiche ich zwei JSON-Dateien auf der Kommandozeile?
Mit jq lassen sich beide Dateien mit sortierten Schlüsseln ausgeben und dann vergleichen: diff <(jq -S . a.json) <(jq -S . b.json). Das funktioniert in Bash und zeigt Unterschiede zeilenweise, aber ohne Pfade.
Wie wende ich einen JSON Patch an?
Mit einer Bibliothek, die RFC 6902 umsetzt, etwa fast-json-patch in JavaScript oder jsonpatch in Python (jsonpatch.apply_patch(dokument, patch)). Der Patch überführt Dokument A Schritt für Schritt in Dokument B.
Das könnte auch helfen
JSON minimieren
JSON auf eine Zeile verdichten: Leerraum entfernen, Zahlen exakt erhalten, optional Schlüssel sortieren.
ÖffnenJSON in CSV umwandeln
JSON-Arrays in CSV für Excel umwandeln: verschachtelte Felder als Spalten, Semikolon oder Komma.
ÖffnenCSV in JSON umwandeln
CSV in JSON umwandeln mit automatischer Trennzeichen-Erkennung und Anführungszeichen nach RFC 4180.
ÖffnenXML formatieren und prüfen
XML einrücken, minimieren und auf Wohlgeformtheit prüfen, mit Fehlerstelle in Zeile und Spalte.
ÖffnenXML in JSON umwandeln
XML in JSON umwandeln: Attribute mit Präfix, wiederholte Elemente als Arrays, Zahlen erkannt.
ÖffnenYAML in JSON umwandeln
YAML prüfen und in JSON umwandeln: Listen, Anker, Block-Strings und mehrere Dokumente.
Öffnen