KI auf dem Gerät – professionell und privat.

JSON-Objekt-Zusammenführung

JSON tief, per Array-Strategie oder nach Schlüssel zusammenführen

  • Bis zu 5 Dokumente
  • 4 Array-Strategien
  • Konfliktbericht

JSON-Dateien hier ablegen

JSON, JSONC, NDJSON und JSON Lines · bis zu 5 Dateien · nichts verlässt Ihr Gerät

0 von 5 Dokumenten
Zusammenführen
Objekte
Objekte

Tief kombiniert verschachtelte Objekte Schlüssel für Schlüssel. Flach ersetzt sie ganz.

Arrays
Arrays

Was geschieht, wenn zwei Arrays am gleichen Pfad aufeinandertreffen.

null-Werte
null-Werte

JSON kennt kein undefined: null kann ein Wert sein oder «aufheben» bedeuten.

Ausgabe
Schlüsselreihenfolge
Schlüsselreihenfolge

Original behält die Basisreihenfolge. A-Z ergibt einen stabilen Diff.

Einrückung
Einrückung
Format
Format

NDJSON braucht ein Array als Ergebnis — diese Zusammenführung ergab ein Objekt.

Eingabe

Konfigurationsdateien enthalten regelmäßig Kommentare, die ein strenger Parser ablehnt.

Lieferung
Stapel
Pro

Jedes Dokument einzeln mit diesen Einstellungen geschrieben, als ein Archiv.

Kostenlos: 5 Dokumente, je 10 MB, 30 MB gesamt.

JSON-Dateien zusammenführen

  1. 1Dokumente hinzufügenLegen Sie bis zu fünf .json-, .jsonc-, .jsonl- oder .ndjson-Dateien ab oder klicken Sie auf JSON einfügen, um ein Dokument einzutippen. Die Reihenfolge zählt — spätere Dokumente gewinnen bei Widerspruch — und die Pfeile jeder Zeile ändern sie.
  2. 2Objektverhalten wählenTiefe Zusammenführung kombiniert verschachtelte Objekte rekursiv. Flache kombiniert nur Schlüssel der obersten Ebene und ersetzt verschachtelte Objekte vollständig. Stellen Sie die Null-Regel ein, wenn ein ausdrückliches null keinen vorhandenen Wert löschen soll.
  3. 3Array-Verhalten wählenErsetzen behält das letzte Array, Aneinanderhängen verbindet sie, Vereinigung verbindet sie ohne Duplikate, und Nach Schlüssel kombiniert Datensätze mit gleichem Schlüssel wie id.
  4. 4Zusammenführen und prüfenDrücken Sie Zusammenführen. Der Konfliktbericht listet jeden Pfad, an dem ein späteres Dokument einen früheren Wert überschrieben hat, mit beiden Werten, und der Eingabebericht zeigt doppelte Schlüssel und Genauigkeitswarnungen je Quelle.
  5. 5Herunterladen oder kopierenWählen Sie eine Einrückung, oder NDJSON wenn das Ergebnis ein Array ist, und laden Sie herunter oder kopieren Sie. Ändern Sie danach eine Einstellung, wird das Ergebnis als veraltet markiert, bis Sie es erneut anwenden.

Was dieses JSON-Zusammenführungswerkzeug bietet

Führen Sie bis zu fünf JSON-Dokumente zu einem zusammen. Sie werden in der Reihenfolge kombiniert, in der Sie sie ablegen, spätere gewinnen also bei Widerspruch, und die Pfeile jeder Zeile ändern diese Reihenfolge. Jede JSON-Wurzel funktioniert — Objekte, Arrays und einfache Werte gleichermaßen. Verschachtelte Objekte können rekursiv zusammengeführt oder vollständig ersetzt werden, Arrays haben vier eigene Strategien, und jeder überschriebene Wert wird festgehalten, sodass das Ergebnis prüfbar ist statt nur glaubwürdig.

  • Beliebig viele Dokumente, in beliebiger Reihenfolge — Dateien ablegen, Text einfügen oder beides. Zeilen umsortieren, um zu ändern, welches Dokument gewinnt. Fünf Dokumente im kostenlosen Tarif, und die Reihenfolge ist die einzige Vorrangzusage des Werkzeugs.
  • Tief oder flach, und vier Array-Strategien — Objekte werden rekursiv oder nur auf oberster Ebene zusammengeführt. Arrays werden ersetzt, aneinandergehängt, zu einer Vereinigung ohne Duplikate verbunden oder Datensatz für Datensatz über ein Schlüsselfeld zusammengeführt.
  • Ein Konfliktbericht, nicht nur ein Ergebnis — Jeder Pfad, an dem ein späteres Dokument einen früheren Wert ersetzt hat, mit beiden Werten und dem gewinnenden Dokument. Kein anderes JSON-Werkzeug im Netz veröffentlicht einen solchen.
  • Es liest das JSON, das Sie wirklich haben — Kommentare und nachgestellte Kommas, NDJSON, UTF-16, Bytereihenfolgemarken. Jedes davon ist eine Datei, die ein strenger Parser für kaputt hält und jeder Editor als fehlerfrei anzeigt.

Angetrieben von optimierten Verarbeitungsalgorithmen.

Flache gegen tiefe Zusammenführung

Das ist die Entscheidung, die das Ergebnis am stärksten verändert, und beide Antworten sind wirklich verschieden, nicht eine besser als die andere.

Die flache Zusammenführung kombiniert nur die oberste Ebene. Existiert ein Schlüssel in beiden Dokumenten, ersetzt der spätere Wert den früheren vollständig — und «vollständig» schließt verschachtelte Objekte ein: ein Basisobjekt mit zehn verschachtelten Schlüsseln ist verschwunden, sobald ein späteres Dokument diesen Schlüssel überhaupt erwähnt. Die tiefe Zusammenführung steigt stattdessen in verschachtelte Objekte hinab und kombiniert sie Schlüssel für Schlüssel, sodass eine Änderung nur die Schlüssel berührt, die sie tatsächlich nennt.

{"server": {"host": "localhost", "port": 8080}} mit {"server": {"port": 9090}} zusammenzuführen ergibt flach {"server": {"port": 9090}} — der Host ist weg — und tief {"server": {"host": "localhost", "port": 9090}}. Tief ist hier die Voreinstellung, weil das Schichten von Konfiguration der Grund ist, aus dem man ein solches Werkzeug sucht, und weil lodash.merge und jede vergleichbare Bibliothek es so halten.

Wie Arrays kombiniert werden

Die tiefe Zusammenführung sagt nichts über Arrays: zwei Arrays sind nicht zwei Objekte, und es gibt keine einzig richtige Art, sie zu kombinieren. Die meisten Bibliotheken wählen stillschweigend ein Verhalten und erwähnen es nie. Dieses Werkzeug fragt.

  • Ersetzen — Das spätere Array gewinnt. Das tut die tiefe Zusammenführung üblicherweise und das tun die meisten Bibliotheken, ohne es zu sagen. Hier die Voreinstellung.
  • Aneinanderhängen — Alle Einträge beider Arrays, der Reihe nach, Duplikate eingeschlossen. Richtig für Protokolle, Ereignisströme und alles, wo jeder Eintrag ein eigener Datensatz ist.
  • Vereinigung — Beide Arrays verbunden, dann Duplikate entfernt durch Vergleich der Struktur statt der Identität: {"a":1,"b":2} und {"b":2,"a":1} gelten als derselbe Eintrag.
  • Nach Schlüssel — Behandelt beide Arrays als Datensatzmengen und kombiniert jene mit gemeinsamem Schlüsselfeld. Unten eigens beschrieben.

Die Array-Strategie gilt überall dort, wo zwei Arrays aufeinandertreffen, im flachen wie im tiefen Modus. Sie im flachen Modus wirkungslos zu lassen hieße, eine Einstellung anzuzeigen, die stillschweigend nichts tut.

Datensätze nach Schlüssel zusammenführen

Nach Schlüssel ist die Strategie, die aus zwei Arrays von Datensätzen eines macht. Geben Sie das Schlüsselfeld an — standardmäßig id — und passende Datensätze werden Feld für Feld kombiniert, statt dass ein Array das andere ersetzt.

  • Passende Datensätze werden zusammengeführt — Ein Datensatz aus einem späteren Dokument, dessen Schlüssel einem früheren entspricht, wird mit denselben Objektregeln wie überall sonst hineingeführt, seine Felder kommen also hinzu, statt den ganzen Datensatz zu ersetzen.
  • Neue Datensätze werden angehängt — Ein Datensatz, dessen Schlüssel noch nicht vorhanden ist, wird am Ende angefügt und lässt die Reihenfolge des früheren Dokuments unberührt.
  • Datensätze ohne den Schlüssel bleiben unangetastet — Einträge, die keine Objekte sind, oder Objekte ohne das Schlüsselfeld, werden unverändert angehängt statt geraten.
  • Der Typ gehört zum Schlüssel — Die Zahl 1 und die Zeichenkette "1" sind verschiedene Datensätze und werden nicht verbunden. Sie gleichzusetzen ist der klassische Verbindungsfehler und liefert ein Ergebnis, das völlig vernünftig aussieht und falsch ist.

Was mit null geschieht

JSON kennt kein undefined, daher trägt null zwei Bedeutungen zugleich: es ist ein echter Wert, und es ist die einzige Möglichkeit für eine Konfigurationsschicht zu sagen «hebe auf, was hier stand». Beide Lesarten sind legitim, und keine Bibliothek kann wissen, welche gemeint war. Standardmäßig überschreibt ein späteres null, denn null ist ein Wert. Stellen Sie die Null-Regel auf Ignorieren, und ein null in einem späteren Dokument wird vollständig übersprungen, kann also nie löschen, was ein Basisdokument gesetzt hat. Der Bericht zählt, wie viele nulls ignoriert wurden, sodass eine falsche Wahl sichtbar wird statt unbemerkt zu bleiben.

Schlüsselreihenfolge und warum sie für Diffs zählt

JSON-Objekte haben keine formal definierte Schlüsselreihenfolge, aber in der Praxis bewahren alle Parser und Serialisierer die Reihenfolge, in der die Schlüssel geschrieben wurden — was bedeutet, dass diese Reihenfolge im Diff Ihrer Versionsverwaltung auftaucht. Standardmäßig behält das Ergebnis die Reihenfolge des Basisdokuments und hängt neue Schlüssel späterer Dokumente am Ende an, sodass eine Zusammenführung den kleinstmöglichen Diff erzeugt. Sortieren Sie stattdessen A bis Z, wenn Sie eine Ausgabe wollen, die unabhängig von der Schreibweise der Eingaben stabil ist — genau das braucht eine Datei, die mehrere Werkzeuge neu erzeugen.

Der Konfliktbericht

Ein Werkzeug, das Ihnen nur die zusammengeführte Datei gibt, verlangt, dass Sie ihm glauben. Dieses hält jede Stelle fest, an der ein Wert verloren ging.

Ein Konflikt ist jeder Pfad, an dem ein späteres Dokument einen früheren Wert ersetzt hat, statt sich hineinzufügen: ein einfacher Wert über einem einfachen Wert, ein Array über einem Array, oder ein Objekt über einem Objekt im flachen Modus. Der Bericht nennt den Pfad, den ersetzten Wert, den ersetzenden Wert und das gewinnende Dokument. Werte, die zusammengeführt statt ersetzt wurden, sind keine Konflikte, und ein späteres Dokument, das denselben Wert schreibt, ebenfalls nicht — beides wäre Rauschen. Daneben listet der Eingabebericht, was in jedem Quelldokument gefunden wurde, bevor die Zusammenführung begann.

Doppelte Schlüssel und Zahlengenauigkeit

Zwei Dinge, die jeder JSON-Parser stillschweigend verwirft und die beide verändern, was in Ihrer zusammengeführten Datei steht.

  • Doppelte Schlüssel — {"a": 1, "a": 2} ist gültiges JSON, und jeder Parser behält den letzten und verwirft die Tatsache, dass es zwei gab. War das Duplikat ein Versehen, ist die Zusammenführung, die Sie prüfen, nicht die, die Sie geschrieben haben. Jedes Quelldokument meldet, wie viele doppelte Schlüssel es enthielt und wo.
  • Zahlen, die den Rundlauf nicht überstehen — JavaScript-Zahlen sind IEEE-754-Doubles und tragen 15 bis 17 signifikante Stellen. Eine 64-Bit-Datenbank-ID wie 9007199254740993 wird in jedem JSON-Parser in jedem Browser zu 9007199254740992, die zusammengeführte Datei enthält also eine andere ID als die Eingabe. Innerhalb des JSON-Datenmodells gibt es keine Abhilfe, deshalb meldet das Werkzeug es, statt etwas anderes vorzugeben.

Kommentare, nachgestellte Kommas, NDJSON und Bytereihenfolgemarken

Strenges JSON und das JSON, das Menschen tatsächlich auf der Platte haben, sind nicht dasselbe. Vier Unterschiede erklären fast jede Datei, die «überall gültig ist, nur nicht in meinem Programm».

  • Kommentare — tsconfig.json, .eslintrc.json und jede devcontainer.json tragen // und /* */. JSON.parse lehnt sie ab. Hier werden sie erkannt, gezählt und zusammengeführt.
  • Nachgestellte Kommas — Die andere Hälfte handbearbeiteter Konfiguration. Ebenfalls von JSON.parse abgelehnt, hier ebenfalls behandelt.
  • NDJSON und JSON Lines — Ein Dokument je Zeile, so kommen Protokollexporte und gestreamte API-Ergebnisse an. Wird automatisch erkannt und als Array gelesen und steht als Ausgabeformat bereit, wenn das Ergebnis ein Array ist.
  • Bytereihenfolgemarken — PowerShell schreibt UTF-16 standardmäßig mit Marke und .NET schreibt UTF-8 mit einer. Als schlichtes UTF-8 gelesen wird eine UTF-16-Datei zu Unsinn, und jeder Parser beschuldigt Zeichen eins. Die Marke wird zuerst gelesen und entscheidet über die Kodierung.

Warum JSON zusammenführen?

Fast jede JSON-Zusammenführung ist eine von wenigen Aufgaben, und zu wissen welche entscheidet meist über die Einstellungen.

  • Konfiguration schichten — Eine Basiskonfiguration, dann Umgebungsänderungen, dann lokale. Tiefe Zusammenführung, Originalreihenfolge, und Nulls ignorieren, wenn Ihre Änderungsdateien null als Kommentar verwenden.
  • API-Antworten kombinieren — Mehrere Antworten zu einem Objekt. Tiefe Zusammenführung, und Nach Schlüssel, wenn die Antworten Datensatz-Arrays enthalten, die über eine id ausgerichtet werden sollen.
  • Datensatzmengen verbinden — Zwei Exporte derselben Objekte mit verschiedenen Feldern. Nach Schlüssel über den gemeinsamen Bezeichner macht daraus eine vollständige Menge.
  • Übersetzungen zusammenführen — Sprachdateien, verteilt auf Teams oder Funktionen. Tiefe Zusammenführung mit A-Z ergibt eine stabile Datei, die bei jeder Neuerzeugung sauber vergleicht.
  • Testdaten aufbauen — Ein Standarddatensatz plus Änderungen je Fall, sodass jeder Test nur nennt, was ihn unterscheidet.

Optionen auf einen Blick

  • Zusammenführungsmodus — Tief kombiniert verschachtelte Objekte rekursiv. Flach kombiniert nur Schlüssel der obersten Ebene und ersetzt verschachtelte Objekte vollständig.
  • Arrays — Ersetzen, Aneinanderhängen, Vereinigung (ohne Duplikate) oder Nach Schlüssel.
  • Schlüsselfeld — Welches Feld einen Datensatz für Nach Schlüssel bestimmt. Standard id. Wird nach Typ und Wert verglichen.
  • Nulls — Überschreiben, damit ein ausdrückliches null einen Wert ersetzt, oder Ignorieren, damit es nie einen löscht.
  • Schlüsselreihenfolge — Original behält die Reihenfolge des Basisdokuments und hängt neue Schlüssel an. A-Z sortiert jedes Objekt für einen stabilen Diff.
  • Einrückung — Minimiert, 2 Leerzeichen, 4 Leerzeichen oder Tabulator.
  • Ausgabe — JSON, oder NDJSON wenn das Ergebnis ein Array ist.
  • Kommentare und nachgestellte Kommas annehmen — Standardmäßig an. Ausschalten, um jedes Dokument auf strenges JSON zu verpflichten.
  • Zurücksetzen — Löscht alle Dokumente, das Ergebnis und alle Einstellungen zurück auf die Voreinstellungen.

Grenzen und Tarife

Der kostenlose Tarif nimmt fünf Dokumente, bis 10 MB je Datei und 30 MB insgesamt. Die Summe ist meist die bindende Zahl, denn eine Zusammenführung hält alle Eingaben und das Ergebnis gleichzeitig im Speicher. Alle Einstellungen, die darüber entscheiden, ob die Zusammenführung korrekt ist, sind kostenlos: beide Modi, alle vier Array-Strategien, das Schlüsselfeld, die Null-Regel, die Schlüsselreihenfolge, alle vier Einrückungen, beide Ausgabeformate und beide Berichte. Pro erhöht nur den Umfang: mehr Dokumente, die Grenze Ihres eigenen Geräts statt einer festen Obergrenze, und ein Stapel als einzelnes Archiv.

Häufige Fragen

Wie funktioniert das JSON-Zusammenführungswerkzeug?

Fügen Sie bis zu fünf JSON-Dokumente per Datei-Ablage oder Einfügen hinzu, wählen Sie, ob Objekte tief oder nur auf oberster Ebene zusammengeführt werden und wie Arrays kombiniert werden, und drücken Sie Zusammenführen. Die Dokumente werden in Listenreihenfolge kombiniert, spätere gewinnen also bei Widerspruch, und Sie können das Ergebnis kopieren, herunterladen oder genau nachsehen, was überschrieben wurde.

Sind meine Daten sicher?

Ja. Jedes Dokument wird auf Ihrem eigenen Gerät gelesen, zusammengeführt und geschrieben; nichts wird hochgeladen, gespeichert oder protokolliert. Nach dem Laden der Seite arbeitet das Werkzeug offline weiter, was es für Konfigurationsdateien, Zugangsdaten und vertrauliche Daten sicher macht.

Was ist der Unterschied zwischen flacher und tiefer Zusammenführung?

Die flache Zusammenführung kombiniert nur Schlüssel der obersten Ebene: existiert ein Schlüssel in beiden Dokumenten, ersetzt der spätere Wert den früheren vollständig, verschachtelte Objekte eingeschlossen. Die tiefe Zusammenführung steigt in verschachtelte Objekte hinab und kombiniert sie Schlüssel für Schlüssel, sodass Sie Änderungen über eine Basiskonfiguration legen können, ohne unbeteiligte verschachtelte Schlüssel zu verlieren.

Kann ich JSON-Arrays zusammenführen, nicht nur Objekte?

Ja. Jede JSON-Wurzel funktioniert — Objekte, Arrays, Zeichenketten, Zahlen, Wahrheitswerte und null — und vier Array-Strategien entscheiden, was geschieht, wenn zwei Arrays aufeinandertreffen. Ersetzen behält das spätere Array, Aneinanderhängen verbindet sie, Vereinigung verbindet sie und entfernt Duplikate unabhängig von der Schlüsselreihenfolge, und Nach Schlüssel kombiniert Datensätze mit gemeinsamem Feld wie id.

Wie führe ich Arrays von Datensätzen über eine id zusammen?

Wählen Sie Nach Schlüssel und geben Sie das Schlüsselfeld an, standardmäßig id. Datensätze im späteren Dokument, deren Schlüssel im früheren vorkommt, werden Feld für Feld zusammengeführt, Datensätze mit neuem Schlüssel werden angehängt, und Datensätze ohne den Schlüssel werden unverändert angehängt. Schlüssel werden auch nach Typ verglichen: die Zahl 1 und die Zeichenkette "1" bleiben getrennte Datensätze.

Wie werden Schlüsselkonflikte und die Überschreibungsreihenfolge behandelt?

Die Dokumente werden in der angezeigten Reihenfolge zusammengeführt, ein späteres Dokument gewinnt also immer, und die Pfeile jeder Zeile ändern diese Reihenfolge. Jede Überschreibung wird festgehalten: der Konfliktbericht nennt Pfad, ersetzten Wert, ersetzenden Wert und das gewinnende Dokument, sodass eine Zusammenführung prüfbar ist statt nur hinnehmbar.

Was passiert mit null-Werten?

Standardmäßig überschreibt ein ausdrückliches null in einem späteren Dokument alles Vorherige, denn null ist ein echter JSON-Wert. JSON kennt kein undefined, daher ist null zugleich die einzige Möglichkeit für eine Konfigurationsschicht zu sagen «setze dies zurück». Ist das nicht gemeint, stellen Sie die Null-Regel auf Ignorieren, und ein null löscht nie einen bereits vorhandenen Wert.

Liest es Dateien mit Kommentaren oder nachgestellten Kommas?

Ja. Konfigurationsdateien wie tsconfig.json und .eslintrc.json enthalten regelmäßig Zeilen- und Blockkommentare und nachgestellte Kommas, die JSON.parse rundweg ablehnt. Das Werkzeug erkennt sie, meldet wie viele es gefunden hat, und führt die Datei trotzdem zusammen. Es liest außerdem NDJSON und JSON Lines als Array und entfernt die Bytereihenfolgemarken, die Windows-Editoren hinzufügen.

Welche Anforderungen gelten für Eingaben und was passiert bei ungültigem JSON?

Jedes gültige JSON-Dokument wird angenommen, in jeder Kodierung mit Bytereihenfolgemarke, bis 10 MB je Datei und 30 MB insgesamt im kostenlosen Tarif. Lässt sich ein Dokument nicht lesen, zeigt die Zeile Zeile, Spalte und die betroffene Zeile mit einem Zeiger unter dem Problem, dazu Links zum JSON-Formatierer und -Validierer, um es zu beheben und erneut zusammenzuführen.

Ist es kostenlos und funktioniert es mobil und offline?

Ja, das Werkzeug ist kostenlos. Alle Einstellungen, die darüber entscheiden, ob die Zusammenführung korrekt ist — beide Modi, alle vier Array-Strategien, das Schlüsselfeld, die Null-Regel, die Schlüsselreihenfolge, alle vier Einrückungen und beide Ausgabeformate — sind kostenlos, und es läuft auf Telefonen und Tablets. Nach dem Laden arbeitet es offline weiter, und Pro erhöht nur den Umfang: mehr Dokumente, die Grenze Ihres eigenen Geräts statt einer festen Obergrenze, und ein Stapel als einzelnes Archiv.

4.8von 5

aus 70 Bewertungen

Dieses Tool bewerten

Auf einen Stern tippen — geht schnell