Zum Inhalt springen

JSON tief zusammenführen

Fügen Sie Basis- und Overlay-Dokument ein, wählen Sie Arraystrategie und Konfliktregel und prüfen Sie das zusammengeführte JSON samt Operationsprotokoll.

Läuft lokal in deinem Browser
1Base JSON2Deep merge3Merged JSON

Base JSON
Overlay JSON

Zwei JSON-Dokumente mit klaren Konflikt- und Arrayregeln zusammenführen

Das Werkzeug führt ein Overlay-JSON in ein Basis-Dokument ein und schreibt das Ergebnis als formatiertes JSON. Objekte werden Schlüssel für Schlüssel rekursiv zusammengeführt: Ein Schlüssel, den nur das Overlay enthält, wird ergänzt, und ein Schlüssel, den beide Dokumente enthalten, folgt der Konfliktregel: Overlay-Wert verwenden, Basiswert behalten oder mit einer Fehlermeldung samt Pfad abbrechen.

Arrays richten sich nach der gewählten Strategie: ersetzen (das Overlay-Array gewinnt), verketten (erst Basis-, dann Overlay-Elemente), eindeutig verketten (dasselbe ohne Wiederholungen) oder Objekte nach Schlüssel zusammenführen (Elemente mit demselben Wert im Schlüsselfeld werden zusammengeführt, neue angehängt). Alles läuft im Browser, und jede Änderung steht Pfad für Pfad unter Merge-Operationen.

  1. Fügen Sie das Basis-Dokument in Basis-JSON und das Overlay in Overlay-JSON ein, oder laden Sie mit Beispiel laden ein Beispiel, das ein Array bereits nach id zusammenführt.
  2. Wählen Sie die Array-Strategie: Array ersetzen, Arrays verketten, Eindeutige Werte verketten oder Objekte nach Schlüssel zusammenführen. Das Feld Objektschlüssel im Array erscheint bei der Schlüssel-Strategie und steht standardmäßig auf id.
  3. Wählen Sie den Skalarkonflikt: Overlay-Wert verwenden (Standard), Basiswert behalten oder Bei Konflikt abbrechen, was den ersten Konfliktpfad meldet und kein Ergebnis erzeugt.
  4. Drücken Sie JSON zusammenführen. Der Bereich Zusammengeführtes JSON zeigt das Ergebnis, und Merge-Operationen listet jede Änderung Pfad für Pfad auf: hinzugefügt, Overlay-Wert verwenden, Basiswert behalten, Array ersetzen, Arrays verketten, eindeutige Werte verketten oder Objekte nach Schlüssel zusammenführen. Die Kennzahlen nennen Operationszahl, Größe in Byte und Ergebnistyp.
  5. Mit Kopieren oder Herunterladen übernehmen Sie das Ergebnis als voritools-merged.json; Leeren räumt Eingaben, Ergebnis, Protokoll und Kennzahlen. Ist ein Dokument kein gültiges JSON oder fehlt beim Schlüssel-Merge der Schlüssel, werden die Bereiche vor der Fehlermeldung geleert, sodass nie versehentlich das alte Ergebnis kopiert wird.

Was die Bereiche leisten, wie sich die Arraystrategien unterscheiden und was das Werkzeug ablehnt

Objekte, Skalare und Konflikte

Objekte werden rekursiv zusammengeführt und eigene Schlüssel nach Namen verglichen: Ein Schlüssel, den nur das Overlay enthält, wird ergänzt und als Hinzufügen-Operation protokolliert. Namen wie __proto__, constructor und prototype werden auf der Overlay-Seite abgelehnt, damit ein präpariertes Dokument nicht an den Objekt-Prototyp gelangt. Zwei verschiedene Skalarwerte entscheidet die gewählte Regel: Overlay-Wert, Basiswert oder ein Fehler wie Merge-Konflikt bei $.service.retries.

Werte unterschiedlichen Typs werden nicht umgewandelt: Eine Zahl im einen und ein Array im anderen Dokument unter demselben Schlüssel gelten als Konflikt und folgen derselben Regel. Gleiche Werte bleiben unverändert und erzeugen keinen Eintrag, und zwei identische Dokumente enden mit dem einzigen Eintrag $: keine Änderungen.

Arraystrategien in der Praxis

Array ersetzen behält das Overlay-Array unverändert, auch wenn das Basis-Array länger war. Arrays verketten hängt die Overlay-Elemente hinter die Basis-Elemente, ohne Wiederholungen zu entfernen, und Eindeutige Werte verketten wirft Wiederholungen anhand ihrer JSON-Darstellung heraus, sodass aus ["a","b"] plus ["c","a"] die Folge ["a","b","c"] wird.

Objekte nach Schlüssel zusammenführen paart Elemente über den Wert des Schlüsselfelds: Ein Overlay-Element mit {id: 1} wird in das Basis-Element mit id 1 eingefügt statt angehängt, und der Vergleich ist textuell, sodass 1 und "1" dieselbe Kennung sind. Elemente ohne diesen Schlüssel und Elemente, die keine Objekte sind, werden unverändert angehängt. Der Schlüsselname wird getrimmt, führende oder folgende Leerzeichen im Feld werden also ignoriert.

Ergebnis lesen, Datenschutz und Grenzen

Das Ergebnis ist reines JSON in der Reihenfolge der Zusammenführung: zuerst die Basis-Schlüssel, danach die Ergänzungen. Das Operationsprotokoll ist der schnellste Weg, eine Zusammenführung zu prüfen: Jeder Eintrag nennt den geänderten Pfad, bei Schlüssel-Arrays in der Form $.users[id=1].role. Kopieren legt das Ergebnis in die Zwischenablage, Herunterladen speichert es als voritools-merged.json.

Die Zusammenführung läuft vollständig im Browser, ohne Upload und ohne Netzwerkanfrage, eignet sich also für interne Konfigurationen und Testdaten. Sie löst Konflikte nicht von selbst und wandelt keine Typen um; ist eine Zusammenführung mehrdeutig, folgt sie der gewählten Regel und protokolliert, was sie getan hat.

Zuletzt verwendet: