tomai
Kostenlos · Entwickler-Tools

JSON-Diff

Zwei JSON-Dokumente Schlüssel für Schlüssel vergleichen

Warum Text-Diffs bei JSON lügen

Ein Zeilen-Diff meldet umformatiertes JSON als komplett geändert, obwohl kein Wert anders ist; ein gekipptes Boolean versinkt derweil in der Rot-Grün-Wand. Ein strukturelles Diff parst beide Seiten erst, vergleicht dann Wert für Wert — Formatierungsrauschen verschwindet, drei echte Änderungen bleiben.

Was dieses Tool kann

  • 🆚 Vergleicht Objekte per Schlüssel, Arrays per Index, rekursiv
  • 🏷️ Jede Zeile mit Typ und vollem JSON-Pfad
  • 📊 Zählt oben zusammen (+2 / −1 / ~3)
  • ⚡ Vergleicht live beim Tippen, mit Compare-Knopf für Absicht

Wann du es brauchst

  • Prüfen, was ein API-Release wirklich an Feldern änderte
  • Config-Drift zwischen Staging und Produktion finden
  • Verifizieren, dass eine Migration Daten korrekt transformierte

Datenschutz: Beide Dokumente parsen und vergleichen lokal — eingefügtes JSON verlässt deinen Browser nie.

Zuletzt aktualisiert · 2026-09-01

So funktioniert der Diff

Beide Inputs parsen zu Werten, dann erzeugt ein rekursiver Walk Zeilen: Fehlende Keys werden hinzugefügt/entfernt, vorhandene-ungleiche Werte (per kanonischem JSON-Text verglichen) geändert, Arrays richten sich per Index aus. Invalides JSON meldet klaren Fehler statt Fake-Leerdiff.

Warum hier diffen?

🆚

Strukturbewusst, nicht zeilenbewusst

Objekte per Schlüssel, Arrays per Index, unbegrenzt rekursiv — umsortierte, aber wertgleiche Dateien melden korrekt null Unterschiede.

🧩

Pfade zum Greppen

Jede Änderung trägt ihre volle $.path.to.value-Adresse — direkt in Code, Tickets und jq-Queries einsetzbar.

📋

Live mit Absicht

Ergebnisse frischen beim Tippen für Exploration, mit explizitem Compare-Knopf und klaren Invalid-JSON-Fehlern statt stillem Leerzustand.

Häufige Fragen

Wie werden Arrays verglichen?

Per Index: Element 3 gegen Element 3. Umsortierte Arrays melden also Änderung — ehrlich so, denn ein strukturelles Diff kann Sortieren nicht erkennen.

Wie tief geht es?

Rekursiv bis ganz unten, mit vollem $.store.book[0].title-Pfad auf jeder Ebene — kein Tiefenlimit zum Anstoßen.

Zählen Formatunterschiede?

Nein, per Design: Beide Seiten parsen erst, Whitespace und Key-Reihenfolge erzeugen nie Phantom-Diffs. Nur echte Wertänderungen werden gemeldet.

Häufige Fragen

Wie werden Arrays verglichen?

Per Index: Element 3 gegen Element 3. Umsortierte Arrays melden also Änderung — ehrlich so, denn ein strukturelles Diff kann Sortieren nicht erkennen.

Wie tief geht es?

Rekursiv bis ganz unten, mit vollem $.store.book[0].title-Pfad auf jeder Ebene — kein Tiefenlimit zum Anstoßen.

Zählen Formatunterschiede?

Nein, per Design: Beide Seiten parsen erst, Whitespace und Key-Reihenfolge erzeugen nie Phantom-Diffs. Nur echte Wertänderungen werden gemeldet.

Ähnliche Tools

Ähnliche Tools