JSON vergleichen und Patch

Fügen Sie zwei JSON-Dokumente ein. Die Seite listet jeden Wert auf, der hinzugefügt, entfernt oder geändert wurde, mit seinem Pfad, und schreibt einen JSON Patch nach RFC 6902, der das linke Dokument in das rechte verwandelt.

Kostenlos Läuft in Ihrem Browser Stand: Dienstag, 10. November 2026

Das erste Dokument, meist die alte Version. Seine Werte sind das „vorher“ jeder Änderung.

Das zweite Dokument, meist die neue Version. Seine Werte sind das „nachher“ jeder Änderung.

Vergleicht Arrays als Sammlungen, daher ist ein Eintrag, der nur seinen Platz wechselt, keine Änderung.

Ergebnis

Anzahl der Unterschiede — Hinzugefügte, entfernte und geänderte Werte zusammen.
Gültigkeit — Ob beide Texte gültiges JSON sind, oder welcher nicht.
Zusammenfassung —
Prüfung des Patchs — Wendet den Patch im Browser auf das linke Dokument an und vergleicht das Ergebnis mit dem rechten Dokument.
JSON Patch (RFC 6902)
Unterschiede

Dieses Werkzeug läuft in Ihrem Browser. Was Sie eingeben, wird nicht an uns gesendet.

So verwenden Sie es

  1. Fügen Sie das alte JSON in Linkes JSON und das neue JSON in Rechtes JSON ein.
  2. Setzen Sie den Haken bei Reihenfolge der Array-Einträge ignorieren, wenn die Arrays Mengen sind, etwa Listen von Tags.
  3. Lesen Sie die Tabelle Unterschiede durch. Jede Zeile nennt den Pfad (JSON Pointer) des Wertes. Kopieren Sie den JSON Patch, sobald Prüfung des Patchs meldet, dass er passt.

So werden die Dokumente verglichen

Die beiden Dokumente werden nach ihrem Wert verglichen. Die Reihenfolge der Namen in einem Objekt spielt keine Rolle, denn JSON beschreibt ein Objekt als Menge von Einträgen. Die Reihenfolge der Einträge in einem Array zählt dagegen, außer Sie setzen die Option, denn ein Array ist eine geordnete Liste.

Zahlen werden als Zahlen verglichen, daher sind 1 und 1.0 gleich. RFC 8259, Abschnitt 6, legt fest, dass ganze Zahlen von -(2^53)+1 bis (2^53)-1 von jeder Implementierung gleich gelesen werden. Eine längere ganze Zahl kann beim Lesen gerundet werden.

Pfade und der Patch

Ein Pfad ist ein JSON Pointer (RFC 6901): Jeder Schritt ist ein Name oder ein Index, getrennt durch einen Schrägstrich. Der erste Eintrag der Liste tags ist /tags/0, und der leere Pfad ist das ganze Dokument. Ein Schrägstrich im Namen wird als ~1 geschrieben, eine Tilde als ~0.

Der JSON Patch (RFC 6902) kennt drei Operationen: add, remove und replace. Entfernte Einträge eines Arrays werden von hinten nach vorn entfernt, damit jeder Index beim Anwenden noch stimmt. Neue Einträge werden mit dem Index "-" angehängt, den RFC 6902 als Ende des Arrays festlegt.

Die Reihenfolge von Arrays ignorieren

Mit gesetzter Option werden Einträge nach ihrem Wert zugeordnet, unabhängig von ihrer Position. Einträge ohne Partner werden als hinzugefügt oder entfernt gemeldet. Ein Array, das sich unterscheidet, wird im Patch ganz ersetzt, denn ein Patch, der nur Einträge verschiebt, müsste wissen, wie sie verschoben wurden. Der Patch gibt das Array dann in der Reihenfolge des rechten Dokuments aus.

Rechenbeispiel: die Standarddokumente

Das linke Dokument hat den Namen FireToolLand, die Version 1, die Tags json und csv und free auf true. Das rechte Dokument hat die Version 2, die Tags csv, json und yaml und eine license mit dem Wert null. In der Reihenfolge gelesen sind es sechs Unterschiede: version, die zwei geänderten Tags, der hinzugefügte Tag yaml, das entfernte free und die hinzugefügte license.

Mit gesetzter Option Reihenfolge der Array-Einträge ignorieren sind die Tags dieselben zwei Einträge in anderer Reihenfolge. Der einzige Tag-Unterschied ist yaml, und die Anzahl sinkt auf vier.

Ergebnis Standardtexte Reihenfolge ignoriert
Anzahl der Unterschiede 6 4
Zusammenfassung 2 hinzugefügt, 1 entfernt, 3 geändert. 2 hinzugefügt, 1 entfernt, 1 geändert.

Häufig gestellte Fragen

Warum ist die Reihenfolge der Array-Einträge wichtig?

In JSON ist ein Array eine geordnete Liste, [1,2] und [2,1] sind daher verschiedene Daten. Setzen Sie Reihenfolge der Array-Einträge ignorieren, wenn das Array eine Menge ist, etwa eine Liste von Tags oder Berechtigungen.

Was bedeutet ein Pfad wie /tags/0?

Es ist ein JSON Pointer (RFC 6901): der Eintrag tags, dann sein erster Eintrag, denn Indizes zählen ab 0. Der leere Pfad steht für das ganze Dokument, und ein Name mit einem Schrägstrich wird stattdessen mit ~1 geschrieben.

Sind 1 und 1.0 derselbe Wert?

Ja. Beides ist die Zahl eins, daher meldet die Seite keinen Unterschied. Ganze Zahlen über 2^53 kann ein JSON-Parser runden, vergleichen Sie lange Kennungen deshalb lieber als Text.

Wofür wird ein JSON Patch gebraucht?

Er ist eine Liste von Schritten (RFC 6902), die ein Server oder eine Bibliothek auf ein Dokument anwendet, um ein anderes zu erhalten, etwa um eine gespeicherte Einstellungsdatei zu aktualisieren. Die Prüfung des Patchs zeigt, dass die Schritte das richtige Dokument ergeben.

Warum wird ein ganzes Array ersetzt, wenn die Reihenfolge ignoriert wird?

Ohne Reihenfolge gibt es für ein geändertes Array keinen einzelnen Schritt, der es richtig umwandelt, ohne zu wissen, wie seine Einträge verschoben wurden. Der Patch schreibt daher das richtige Array vollständig.

Wird mein JSON irgendwohin geschickt?

Nein. Beide Texte werden in Ihrem Browser gelesen und verglichen. Was Sie einfügen, wird weder an einen Server gesendet noch dort gespeichert.

Quellen

Zahlen und Text zuletzt geprüft: Dienstag, 10. November 2026.

Wir verwenden notwendige Cookies, damit die Website funktioniert. Mit Ihrer Einwilligung verwendet Google außerdem Werbe-Cookies, um personalisierte Anzeigen zu zeigen. Wenn Sie diese ablehnen, sehen Sie weiterhin Anzeigen, sie werden aber nicht personalisiert.