JSON zusammenführen
Führt zwei JSON-Objekte tief zusammen; gleiche Schlüssel übernehmen standardmäßig den rechten Wert (umschaltbar oder nur Konfliktzählung), Arrays werden komplett ersetzt.
Zwei JSON-Dokumente tief zusammenführen und gleichnamige Felder nach Regeln behandeln
Was bedeutet JSON zusammenführen?
Beim JSON-Merge werden zwei JSON-Dokumente anhand ihrer Felder zu einem Ergebnis kombiniert. Felder, die nur in JSON A oder JSON B vorhanden sind, bleiben erhalten. Gleichnamige Felder werden entsprechend der gewählten Merge-Strategie behandelt. Wenn beide Werte Objekte sind, kann das Deep-Merge die inneren Felder ebenfalls rekursiv zusammenführen.
Wie werden verschachtelte Objekte beim Deep-Merge behandelt?
Das Tool verwendet standardmäßig ein Deep-Merge. Bei verschachtelten Objekten wird ein gleichnamiges äußeres Feld nicht einfach vollständig durch B ersetzt, sondern die inneren Felder werden weiter zusammengeführt. Wenn A beispielsweise server.port und B server.host enthält, bleiben beide Felder im Ergebnis erhalten. Nur Werte am gleichen Pfad werden entsprechend der gewählten Strategie behandelt. Wenn das Deep-Merge deaktiviert wird, werden gleichnamige Felder als vollständige Werte übernommen und nicht weiter rekursiv verglichen.
Welche drei Strategien gibt es für gleichnamige Felder?
Bei „B überschreibt A“ wird der Wert aus JSON B verwendet. Dies ist die Standardstrategie und eignet sich beispielsweise, wenn B Standardkonfigurationen aus A überschreiben soll. Bei „A überschreibt B“ bleibt der Wert aus JSON A erhalten und B ergänzt nur Felder, die in A nicht vorhanden sind. Bei „Konflikt: A beibehalten“ bleibt bei einem Konflikt der Wert aus A erhalten und die Anzahl der Konflikte wird gezählt, damit mögliche Überschreibungsrisiken überprüft werden können.
Wie werden Arrays zusammengeführt?
Arrays werden als vollständige Werte behandelt und nicht elementweise nach Index zusammengeführt. Wenn A und B am gleichen Pfad jeweils ein Array enthalten, wird abhängig von der gewählten Priorität eines der beiden Arrays übernommen. Die Elemente werden weder automatisch zusammengefügt noch einzeln kombiniert. Dadurch lassen sich unerwartete Kombinationen bei geordneten Listen vermeiden.
Was gilt als Konflikt?
Ein Konflikt entsteht, wenn JSON A und JSON B am gleichen Feldpfad jeweils einen Wert besitzen, diese Werte unterschiedlich sind und die Merge-Strategie entscheiden muss, welcher Wert im Ergebnis verwendet wird. Identische Werte gelten nicht als Konflikt. Auch gleichnamige Felder in verschachtelten Objekten werden anhand ihrer tatsächlichen Pfade separat behandelt. Nach dem Merge kann die Anzahl der Konfliktfelder geprüft werden.
Für welche Szenarien eignet sich JSON Merge?
JSON Merge eignet sich zum Zusammenführen von Standard- und Umgebungs-Konfigurationen, Konfigurationsdateien verschiedener Umgebungen, API-Standardwerten und Benutzereinstellungen sowie getrennt gepflegten JSON-Daten. Wenn zunächst konkrete Änderungen geprüft werden sollen, kann vor dem Merge JSON-Diff verwendet werden.
Wie führt man lokale JSON-Dateien zusammen?
Wechsle zum Tab für Datei-Uploads und lege die erste Datei als JSON A und die zweite als JSON B ab. Alternativ können lokale JSON-Dateien über die Dateiauswahl ausgewählt werden. Die Dateien werden direkt im Browser gelesen und verarbeitet; die maximale Größe beträgt 10 MB pro Datei. Sobald beide Seiten geladen sind, kann der Merge ausgeführt werden. Mit der Tauschen-Schaltfläche können A und B vertauscht werden, da ihre Reihenfolge das Ergebnis bei Überschreibungen beeinflusst.
Wie prüft man das Merge-Ergebnis?
Nach dem Zusammenführen sollte zunächst die Anzahl der Konfliktfelder geprüft und anschließend die endgültigen Werte wichtiger Felder kontrolliert werden. Bei „B überschreibt A“ sollte insbesondere geprüft werden, ob die Werte aus JSON B korrekt sind. Bei „A überschreibt B“ sollte kontrolliert werden, ob die ursprünglichen Werte aus A tatsächlich erhalten bleiben sollen. Das Ergebnis kann kopiert oder als JSON heruntergeladen werden. Die Ausgabe verwendet eine Einrückung von zwei Leerzeichen und ist dadurch gut lesbar.
Wie werden gleichnamige Felder beim JSON-Merge behandelt?
JSON Merge verwendet standardmäßig ein Deep-Merge: Einzigartige Felder bleiben erhalten, verschachtelte Objekte werden rekursiv zusammengeführt und gleichnamige Felder werden standardmäßig von JSON B überschrieben. Alternativ kann JSON A Vorrang erhalten oder bei Konflikten der Wert aus A beibehalten und die Konfliktanzahl gezählt werden.
Arrays werden als vollständige Werte behandelt und nicht nach Index zusammengeführt. Die Reihenfolge ist A zuerst und B danach, sodass das Vertauschen der Eingaben das Ergebnis von Konfliktfeldern verändern kann.
- Zwei JSON-Dokumente tief zusammenführen: Einzigartige Felder bleiben erhalten, verschachtelte Objekte werden rekursiv kombiniert und das Deep-Merge kann deaktiviert werden
- Gleichnamige Felder unterstützen B überschreibt A, A überschreibt B sowie Konflikt: A beibehalten mit Konfliktzählung
- Arrays werden als vollständige Werte behandelt und weder nach Index zusammengeführt noch automatisch verkettet
- Nach dem Merge wird die Anzahl der Konfliktfelder angezeigt, um Überschreibungsrisiken zu prüfen
- Unterstützt Text und lokale JSON-Dateien bis 10 MB pro Datei
- Die Verarbeitung erfolgt lokal im Browser, JSON-Inhalte werden nicht auf den Server hochgeladen