Basiert auf fortschrittlicher KI auf dem Gerät und Hardwarebeschleunigung – für professionelle Leistung bei kompromissloser Privatsphäre.KI auf dem Gerät – professionell und privat.
JSON-Objekt-Diff
JSON-Diff mit Array-Paarung, Filtern und Patch-Export
- Alles auf Ihrem Gerät
- Arrays gepaart, nicht abgeladen
- Export als JSON-Patch oder Markdown
Zwei JSON-Dateien ablegen oder unten einfügen
JSON, JSONC, GeoJSON, Source Maps, Text · Ein Paar ablegen, es wird nach Namen gepaart
Jede Option lockert genau eine Sache. Der Bericht hält fest, welche aktiv waren.
Wie nah zwei Zahlen liegen müssen, um als gleich zu gelten.
Nennen Sie ein eindeutiges Feld, dann richten sich Elemente an dessen Wert statt an der Position aus.
Komma-getrennt. Pfade erlauben * für einen Schritt und ** für beliebig viele.
Kostenlos: ein Paar, bis 10.0 MB je Seite. Pro hebt das auf das an, was Ihr Gerät bewältigt, und vergleicht bis zu 50 Paare gleichzeitig.
So vergleichen Sie zwei JSON-Dateien
- 1Erstes Dokument hinzufügenFügen Sie JSON in das linke Feld ein oder ziehen Sie eine .json-Datei auf den Ablagebereich. Ziehen Sie zwei Dateien auf einmal hinein, werden sie automatisch gepaart: Namen wie users.before.json und users.after.json werden erkannt, und die ältere Seite landet links.
- 2Zweites Dokument hinzufügenFügen Sie das zweite Dokument in das rechte Feld ein oder ziehen Sie es hinein. Mit Seiten tauschen drehen Sie die beiden Seiten um, falls sie verkehrt herum gelandet sind.
- 3Unterschiede lesenDer Vergleich läuft beim Tippen. Wechseln Sie zwischen den Ansichten nebeneinander, inline und nach Pfad; unveränderte Abschnitte bleiben eingeklappt, bis Sie sie öffnen, und die Schaltflächen Vorheriger und Nächste Änderung springen zwischen den Änderungen.
- 4Einstellen, was als Unterschied zähltIgnorieren Sie die Array-Reihenfolge, die Groß- und Kleinschreibung oder Leerzeichen; setzen Sie eine Zahlentoleranz; benennen Sie Schlüssel oder Pfade, die übersprungen werden; oder paaren Sie Array-Elemente über ein id-Feld, damit eine umsortierte Liste als umsortiert und nicht als neu geschrieben gelesen wird.
- 5Ergebnis exportierenKopieren Sie die Zusammenfassung, laden Sie einen JSON-Patch nach RFC 6902 herunter, der das linke Dokument in das rechte verwandelt, oder laden Sie einen Markdown-Bericht für einen Pull Request oder ein Ticket herunter.
Was dieses JSON-Diff-Tool bietet
Finden Sie die genauen Änderungen zwischen zwei JSON-Objekten, einschließlich hinzugefügter, entfernter und geänderter Schlüssel, mit schnellem Filtern und klaren Hinweisen. Fügen Sie zwei Dokumente ein oder ziehen Sie sie hinein; der Vergleich läuft beim Tippen auf Ihrem Gerät: Jeder Unterschied wird über seinen genauen Pfad gemeldet, Arrays werden Element für Element gepaart statt als Block abgeladen, und das Ergebnis kann als JSON-Patch, Markdown-Bericht oder kopierbare Zusammenfassung die Seite verlassen.
- Unterschiede mit genauem Pfad — Jede Änderung wird über einen JSON Pointer adressiert, also meint users/1/name genau dieses Feld dieses Elements und sonst nichts. Ein Schlüssel, der buchstäblich einen Punkt oder Schrägstrich enthält, wird maskiert statt mit dem umgebenden Pfad verschmolzen.
- Drei Arten, es zu lesen — Nebeneinander zum Überfliegen, inline für eine vertraute Patch-Ansicht, oder eine flache Liste nach Pfad, um direkt zum Bewegten zu springen. Unveränderte Abschnitte bleiben eingeklappt, bis Sie einen öffnen.
- Vier Arten von Änderung — Hinzugefügt, entfernt, geändert und Typ geändert. Ein Wert, der von "3" zu 3 wird, wird gesondert hervorgehoben, weil das die Änderung ist, die am ehesten kaputt macht, was das Dokument als Nächstes liest.
- Exporte, die etwas taugen — Ein JSON-Patch nach RFC 6902, den andere Werkzeuge anwenden können, ein Markdown-Bericht für einen Pull Request, oder eine schlichte Zusammenfassung für eine Nachricht. Die ersetzte Seite hatte überhaupt keinen Export.
Wie Arrays gepaart werden
Das ist der Teil, der einen nützlichen JSON-Diff von einem ärgerlichen trennt. Zwei Arrays Position für Position zu vergleichen funktioniert nur, solange nichts eingefügt oder entfernt wurde: Fügen Sie am Anfang einer Liste von tausend ein Element ein, richtet sich jedes folgende am falschen Nachbarn aus, und eine Änderung an einem Element wird als tausend gemeldet.
Deshalb werden Arrays vor dem Vergleich ausgerichtet, mit derjenigen von vier Strategien, die passt. Welche gelaufen ist, steht neben der Zusammenfassung, denn die erste Frage, die jemand an einen Array-Diff stellt, ist, warum zwei bestimmte Elemente gepaart wurden.
- Nach id — Nennen Sie unter Array-Elemente paaren ein Feld, und die Elemente richten sich an dessen Wert aus. Eine Sammlung, die eine API in anderer Reihenfolge zurückgegeben hat, liest sich dann als umsortiert, und nur der tatsächlich geänderte Datensatz wird gemeldet. Das wird nur verwendet, wenn jedes Element das Feld trägt und kein Wert doppelt vorkommt: Ein nicht eindeutiger Schlüssel ergäbe eine selbstsichere, ordentliche und falsche Paarung, also wird abgelehnt statt geraten.
- Nach längster gemeinsamer Teilfolge — Der Standard. Gemeinsamer Anfang und gemeinsames Ende werden zuerst gepaart, dann wird die Mitte so ausgerichtet, dass möglichst wenige Elemente als eingefügt oder entfernt zählen. Ein Einfügen ist eine Hinzufügung, ein Löschen eine Entfernung, alles andere bleibt ausgerichtet.
- Als Menge — Schalten Sie Array-Reihenfolge ignorieren ein, und die beiden Listen werden als ungeordnete Sammlungen verglichen; Elemente, die sich nur verschoben haben, sind dann gar keine Unterschiede.
- Nach Position — Die ehrliche Antwort für zwei Listen mit fast nichts Gemeinsamem, wo jede Paarung willkürlich ist und alles andere nur Rauschen hinzufügt.
Die Optionen erklärt
Der Standardvergleich ist streng: Jeder Wert, jeder Typ und jede Array-Position muss übereinstimmen. Jede Option unten lockert genau eine Sache, und der Bericht hält fest, welche aktiv waren, sodass sich ein Ergebnis später immer nachlesen lässt.
- Array-Reihenfolge ignorieren — Arrays als ungeordnete Sammlungen behandeln. Nützlich für Tag-Listen, Berechtigungsmengen und alles, dessen Reihenfolge nichts bedeutet.
- Groß-/Kleinschreibung ignorieren — Zeichenketten ohne Rücksicht auf die Schreibweise vergleichen. Nützlich für Beschriftungen und Aufzählungswerte, deren Stil sich geändert hat, aber nicht die Bedeutung.
- Leerzeichen ignorieren — Zeichenketten vor dem Vergleich trimmen und Leerzeichenfolgen zusammenfassen, damit eine neu umbrochene Beschreibung nicht wie eine Neufassung wirkt.
- Zahlentoleranz — Wählen Sie, wie nah zwei Zahlen beieinander liegen müssen, um als gleich zu gelten, von exakt bis 1. Auf 0,0001 gesetzt verschwindet Rundungsrauschen, eine echte Preisänderung aber nicht.
- Schlüssel ignorieren — Nennen Sie Schlüssel — updatedAt, requestId, etag — und sie werden übersprungen, wo immer sie auftauchen, in jeder Tiefe. Das macht aus zwei API-Momentaufnahmen einen lesbaren Diff.
- Pfade ignorieren — Eine bestimmte Stelle überspringen statt eines Namens. Platzhalter sind erlaubt: /users/*/lastSeen überspringt dieses Feld für alle Nutzer, und /meta/** überspringt alles unterhalb von meta.
- Kommentare und abschließende Kommas erlauben — Nimmt JSONC an, damit Konfigurationsdateien so verglichen werden können, wie sie geschrieben sind. Eine abgelegte .jsonc-Datei schaltet das für Sie ein.
- Beim Tippen vergleichen — Standardmäßig an. Schalten Sie es bei sehr großen Dokumenten aus, wenn Sie lieber auf Zuruf vergleichen; die Schaltfläche nennt dann, wie viele Ergebnisse veraltet sind.
Pfade, und warum es JSON Pointer sind
Jeder Unterschied trägt einen JSON Pointer nach RFC 6901 — /users/1/name statt users.1.name. Der Unterschied wiegt schwerer, als er aussieht, denn ein Pfad, der Schlüssel mit Punkten verbindet, wird mehrdeutig, sobald ein Schlüssel einen Punkt enthält.
Ein Dokument mit einem Schlüssel namens a.b und ein Dokument mit einem verschachtelten a, das b enthält, ergeben denselben Punktpfad: Zwei wirklich verschiedene Stellen beanspruchen dieselbe Adresse, und keine lässt sich zu einem Knoten auflösen. Ein Pointer maskiert das Trennzeichen, statt es zu reservieren: ~ wird zu ~0 und / wird zu ~1, sodass jeder Pfad auf genau eine Stelle auflöst. Genau das macht den exportierten Patch anwendbar, die Sprungschaltflächen möglich und das Ergebnis für andere Werkzeuge nutzbar.
- Auf dem Bildschirm — Pfade werden in freundlicherer Form gezeigt — $.users[1].name — weil sich das am besten liest. Exportiert wird der Pointer.
- Im Patch — Jede Operation wird über ihren Pointer adressiert; genau das macht die Datei zu einem standardkonformen RFC-6902-Patch statt zu etwas, das nur dieses Werkzeug versteht.
Einen Vergleich exportieren
Ein Diff ist meist der Beleg für etwas anderes — eine Review, ein Ticket, eine Deployment-Prüfung — er muss die Seite also verlassen können. Drei Exporte decken die üblichen Wege ab, und alle drei gibt es im kostenlosen Plan.
- JSON-Patch (RFC 6902) — Eine standardisierte Liste von add-, remove- und replace-Operationen, die das linke Dokument in das rechte verwandelt. Array-Operationen sind so geordnet, dass Indizes während der Anwendung gültig bleiben: zuerst alles innerhalb eines Elements, dann Entfernungen von hinten, dann Einfügungen von vorn.
- Markdown-Bericht — Eine Übersichtstabelle, die verwendeten Einstellungen und eine Zeile je Unterschied mit Pfad, Art der Änderung und beiden Werten. Werte mit einem senkrechten Strich werden maskiert, eine Tabellenzeile kann sich also nie in die falschen Spalten aufteilen.
- Kopierbare Zusammenfassung — Eine Klartextliste mit den Präfixen +, - und ~, für eine Chat-Nachricht oder eine Commit-Notiz.
- Ein ZIP für den Stapel — Mit Pro exportiert jeder Vergleich in der Warteschlange seinen Bericht und seinen Patch in ein einziges Archiv.
Doppelte Schlüssel und andere Dinge, die JSON verbirgt
JSON erlaubt einem Objekt, denselben Schlüssel zweimal zu deklarieren. Jeder existierende Parser akzeptiert das und behält stillschweigend den letzten Wert — das heißt, zwei Dokumente können sich in einem Schlüssel unterscheiden, den kein Vergleich je sehen könnte: Der Unterschied ist weg, bevor der Vergleich beginnt.
Beide Seiten werden auf wiederholte Schlüssel durchsucht, und Sie erfahren, welcher und wo. Die Suche läuft erst, nachdem das Ergebnis erschienen ist, sie verzögert die Antwort also nie. Zwei weitere stille Fälle werden genauso behandelt: Zahlen werden nach Wert verglichen und nicht danach, wie sie geschrieben wurden, also sind 1, 1.0 und 1e0 ein Wert und -0 gleich 0; und die Schlüssel eines Objekts werden als Menge verglichen, ein Umsortieren ist also keine Änderung.
- Derselbe Schlüssel zweimal — Wird als Warnung gemeldet, mit Schlüsselnamen und Fundstelle, auf der Seite, auf der er auftaucht.
- Anders geschriebene Zahlen — 1 und 1.0 sind derselbe Wert und werden nicht als Änderung gemeldet.
- Schlüssel in anderer Reihenfolge — Objekte sind per Definition ungeordnet, ein umsortiertes Objekt gilt also als identisch.
- Jede Wurzel, nicht nur ein Objekt — Ein Array, eine Zeichenkette, eine Zahl, true, false oder null an der Wurzel werden ganz normal verglichen.
Was Sie vergleichen können
Das Werkzeug öffnet genau die unten genannten Formate und lehnt alles andere schon bei der Dateiauswahl ab, statt es bis zum Parser gelangen und dort scheitern zu lassen. Eine abgelehnte Datei wird benannt, und das Werkzeug, das sie umwandelt, ebenfalls.
- JSON, GeoJSON, Source Maps, reiner Text — .json, .geojson, .map und .txt öffnen direkt. Dateien werden an der Endung erkannt, nicht am Typ, den Ihr System meldet — der ist oft überhaupt keiner.
- JSONC — .jsonc öffnet automatisch mit erlaubten Kommentaren und abschließenden Kommas. Die Option lässt sich auch von Hand für eine .json einschalten, die welche enthält.
- YAML und XML — Abgelehnt, mit einem Link zum Umwandler YAML zu JSON oder XML zu JSON. Erst umwandeln, dann vergleichen.
- CSV und Excel — Abgelehnt, mit einem Link zu CSV zu JSON oder Excel zu JSON.
Tempo, und was bei großen Dokumenten passiert
Der Vergleich läuft außerhalb des Hauptthreads, die Seite reagiert also weiter, und Abbrechen bricht wirklich ab — auch während der langsamsten Phase und nicht nur zwischen Schritten. Der Fortschritt ist echt: Er zählt besuchte Knoten, nicht verstrichene Sekunden.
Die Ergebnisliste wird als Fenster gezeichnet statt vollständig aufgebaut. Ein Vergleich mit Tausenden Unterschieden zeichnet nur die Zeilen auf dem Bildschirm, und deshalb scrollt ein sehr großer Diff flüssig, statt den Tab einzufrieren, während Zehntausende Elemente entstehen. Unveränderte Abschnitte werden gar nicht erst aufgebaut, bis Sie einen öffnen.
- Beim Tippen — Eingaben werden zu einem Vergleich zusammengefasst statt zu einem je Tastendruck, und es läuft immer nur einer.
- Abbrechen — Stoppt im Bruchteil einer Sekunde, an jeder Stelle des Laufs.
- Zähler bleiben exakt — Oberhalb von 100.000 Unterschieden wächst die Liste nicht weiter, die Summen aber schon, und die Seite sagt, dass die Liste gekürzt wurde. Eine Zusammenfassung, die still zu wenig meldet, wäre schlimmer als gar keine.
Ein 10-MB-Paar wird deutlich unter einer Sekunde geparst, verglichen und mit seinem Patch versehen — außerhalb des Hauptthreads, sodass die Seite währenddessen bedienbar bleibt.
Warum ein JSON-Diff?
Konfigurationsdateien, API-Antworten und exportierte Daten ändern sich zwischen Versionen, und das Interessante ist im Rohtext fast nie zu sehen. Ein struktureller Vergleich sagt genau, welche Schlüssel hinzugekommen, entfernt oder umgetypt wurden, ohne dass Sie eines der beiden Dokumente lesen müssen — und genau das macht ihn in einer Review, einem Fehlerbericht oder einem Audit nützlich.
- Schnellere Reviews — Erkennen Sie strukturelle Änderungen in Konfigurationen und Payloads ohne zeilenweises Lesen, und fügen Sie den Markdown-Bericht direkt in den Pull Request ein.
- Regressionsprüfung — Vergleichen Sie eine erwartete Antwort mit einer echten, ignorieren Sie die Felder, die sich immer ändern, und sehen Sie nur, was sich wirklich bewegt hat.
- Migrationen und Audits — Bestätigen Sie, dass eine Transformation jedes Feld behalten hat, das sie behalten sollte, und erzeugen Sie einen Patch als Beleg dafür, was sie geändert hat.
- Nichts verlässt Ihr Gerät — Zugangsdaten, Kundendaten und interne Payloads werden dort verglichen, wo sie ohnehin schon sind: Nichts wird hochgeladen und nichts gespeichert.
Grenzen und was Pro ändert
Kostenlos ist im Umfang begrenzt, nie im Funktionsumfang: alle Vergleichsoptionen, alle drei Ansichten und alle Exporte für ein Paar funktionieren kostenlos. Pro hebt die Obergrenze und ergänzt den Stapel.
- Kostenlos — Ein Paar zur Zeit, bis 10 MB je Seite. Alle Optionen, alle drei Ansichten und die Exporte JSON-Patch, Markdown und Zusammenfassung.
- Pro — Dokumente bis zu dem, was Ihr Gerät bewältigt, und bis zu 50 Paare gleichzeitig in der Warteschlange — nach Namen gepaart, mit allen Berichten und Patches in einem ZIP.
- Wenn eine Datei zu groß ist — Die Ablehnung nennt die tatsächliche Größe und die Grenze und verlinkt den JSON-Minifizierer: Ein mit zwei Leerzeichen eingerücktes Dokument besteht oft überwiegend aus Einrückung, und Minifizieren ist häufig die ganze Lösung.
Häufige Fragen
Wie funktioniert das JSON-Diff-Tool?
Fügen Sie zwei JSON-Dokumente ein oder ziehen Sie sie hinein; der Vergleich läuft beim Tippen auf Ihrem Gerät. Beide Seiten werden geparst, dann gemeinsam Schlüssel für Schlüssel und Element für Element durchlaufen, und jeder Unterschied wird über seinen genauen Pfad gemeldet: rechts hinzugefügt, links entfernt, Wert geändert oder Typ geändert. Zähler zeigen die Summen, und Sie können das Ergebnis nebeneinander, inline oder als flache Pfadliste lesen.
Sind meine Daten sicher?
Ja. Beide Dokumente werden vollständig auf Ihrem Gerät gelesen und verglichen — nichts wird hochgeladen, nichts gespeichert, und es geht keine Kopie irgendwohin. Der Vergleich funktioniert auch mit getrennter Netzwerkverbindung weiter, sobald die Seite geladen ist; das ist die einfachste Möglichkeit, es selbst zu prüfen.
Wie werden Arrays und verschachtelte Objekte verglichen?
Verschachtelte Objekte werden in jeder Tiefe Schlüssel für Schlüssel verglichen. Arrays werden Element für Element gepaart statt als Ganzes verglichen: Ändern Sie ein Feld eines Elements in einer Liste von tausend, wird das als eine einzige Änderung am Pfad dieses Elements gemeldet — nicht als „das Array hat sich geändert“. Ein eingefügtes Element ist eine Hinzufügung, nicht ein Verschieben aller folgenden. Tragen Ihre Elemente eine id, nennen Sie sie unter Array-Elemente paaren, und umsortierte Listen richten sich nach der id statt nach der Position aus.
Was passiert, wenn eines meiner JSON-Dokumente ungültig ist?
Beide Seiten werden geprüft, Sie erfahren also von beiden Problemen gleichzeitig, statt eines zu beheben und dann das andere zu entdecken. Jeder Fehler nennt Zeile und Spalte, den Text drumherum mit einem Zeichen unter der genauen Stelle, und Links zum JSON-Formatierer und -Validator. Ist die Datei nur an Kommentaren oder einem abschließenden Komma gescheitert, sagt das Werkzeug das und bietet an, sie zu akzeptieren.
Kann ich die Unterschiede exportieren?
Ja, auf drei Wegen. Zusammenfassung kopieren legt eine Klartextliste jeder Änderung in die Zwischenablage. JSON-Patch herunterladen liefert einen RFC-6902-Patch — eine Standarddatei, die andere Werkzeuge anwenden können, um das linke Dokument in das rechte zu verwandeln. Markdown herunterladen erzeugt einen Bericht mit Übersichtstabelle und einer Zeile pro Änderung, fertig zum Einfügen in einen Pull Request oder ein Ticket. Mit Pro lädt sich ein Stapel von Vergleichen als ein einziges ZIP herunter.
Vergleicht es Konfigurationsdateien mit Kommentaren oder JSON-Arrays an der Wurzel?
Beides. Schalten Sie Kommentare und abschließende Kommas erlauben ein, um tsconfig.json, .vscode/settings.json, devcontainer.json und alles andere in JSONC zu vergleichen — eine abgelegte .jsonc-Datei schaltet die Option für Sie ein. Die Wurzel Ihres Dokuments darf alles sein, was JSON erlaubt: ein Objekt, ein Array, eine Zeichenkette, eine Zahl, true, false oder null. Eine API-Antwort, die ein bloßes Array zurückgibt, wird genauso verglichen wie ein Objekt.
Welche Größenbeschränkungen gelten, und was bringt Pro?
Kostenlos vergleichen Sie ein Dokumentenpaar mit bis zu 10 MB je Seite, mit allen Vergleichsoptionen und allen Exporten für ein Paar. Pro hebt die Größe auf das an, was Ihr Gerät bewältigt, und erlaubt bis zu 50 Paare in der Warteschlange: Dateien werden nach Namen gepaart, und alle Berichte und Patches laden sich als ein ZIP herunter. Keine Option und kein Export wird im kostenlosen Plan zurückgehalten.
Warum steht in meinem Dokument derselbe Schlüssel zweimal?
JSON erlaubt das, und jeder Parser akzeptiert es und behält stillschweigend den letzten Wert — das heißt, zwei Dokumente können sich in einem Schlüssel unterscheiden, den kein Vergleich je sehen könnte. Dieses Werkzeug durchsucht beide Seiten nach wiederholten Schlüsseln und warnt Sie, mit Namen und Fundstelle. Das lohnt sich immer dann zu prüfen, wenn ein Diff leerer wirkt als erwartet.
aus 72 Bewertungen
Dieses Tool bewerten
Auf einen Stern tippen — geht schnell