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
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
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.
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.
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.
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.