Skip to main content
CheckTown
Daten-Tools

JSON-Flatten: Verschachtelt in flach umwandeln und zurück

Veröffentlicht 5 Min. Lesezeit
In diesem Artikel

Was ist JSON-Flattening?

Beim JSON-Flattening wird ein tief verschachteltes JSON-Objekt mithilfe von Pfaden in Punktnotation in eine flache Schlüssel-Wert-Struktur umgewandelt. Jeder Blattwert im ursprünglichen Objekt erhält einen eindeutigen Pfad wie 'user.address.city', der seine Position in der Hierarchie beschreibt.

Die umgekehrte Operation, das Unflattening, nimmt Pfade in Punktnotation und rekonstruiert daraus die ursprüngliche verschachtelte Struktur. Zusammen ermöglichen Flatten und Unflatten, JSON zwischen verschachtelter und flacher Darstellung zu transformieren, ohne Daten zu verlieren.

So funktioniert JSON-Flattening

Der Flattening-Algorithmus durchläuft den JSON-Baum rekursiv und baut dabei eine Pfadzeichenkette auf, während er in verschachtelte Objekte und Arrays absteigt.

  • Rekursives Durchlaufen – der Algorithmus geht jeden Schlüssel im Objekt durch und hängt jeden Schlüssel an einen wachsenden, durch Punkte getrennten Pfad an
  • Array-Index-Notation – Array-Elemente verwenden eine Klammernotation wie 'items[0].name', um ihre Position in der flachen Ausgabe zu bewahren
  • Blattsammlung – sobald ein primitiver Wert (String, Zahl, Boolean, null) erreicht ist, werden der vollständige Pfad und der Wert als flaches Schlüssel-Wert-Paar gespeichert

Kostenlos testen – keine Registrierung erforderlich

JSON flatten oder unflatten →

Wann Sie JSON-Flattening verwenden sollten

Flaches JSON ist immer dann nützlich, wenn Sie in ausschließlich flachen Systemen mit verschachtelten Daten arbeiten oder komplexe Strukturen vergleichen müssen.

  • Datenbankspeicherung – verschachtelte Konfigurationen oder Metadaten in flachen Schlüssel-Wert-Tabellen speichern, ohne das Schema zu ändern
  • CSV-Export – verschachtelte JSON-Datensätze in flache Zeilen umwandeln, die für den Import in Tabellenkalkulationen oder die tabellarische Darstellung geeignet sind
  • Konfigurationsvergleich – zwei Konfigurationsdateien flatten und die flachen Schlüssel vergleichen, um schnell zu erkennen, welche verschachtelten Werte sich geändert haben

Häufig gestellte Fragen

Bleiben beim Flattening die Datentypen erhalten?

Ja. Alle primitiven Werte (Strings, Zahlen, Booleans, null) bleiben exakt erhalten. Arrays werden zu indizierten Pfaden wie 'items[0]', und verschachtelte Objekte werden zu durch Punkte getrennten Pfaden. Das Unflattening rekonstruiert die ursprünglichen Typen aus den Pfaden.

Was passiert bei sehr tiefer Verschachtelung?

Der Flattener verarbeitet jede Verschachtelungstiefe. Sehr tiefe Objekte erzeugen lange Pfadzeichenketten, das hat jedoch keine funktionale Grenze. Wenn die Leistung wichtig ist, verwenden die meisten Implementierungen iterative Ansätze, um Probleme mit dem Aufrufstack bei tausenden Verschachtelungsebenen zu vermeiden.

Kann ich JSON mit doppelten Schlüsseln flatten?

JSON erlaubt laut Spezifikation keine doppelten Schlüssel auf derselben Ebene. Wenn Ihr Parser sie akzeptiert, überlebt nur der letzte Wert jedes Schlüssels das Parsen. Der Flattener arbeitet mit dem geparsten Objekt, sodass Duplikate bereits aufgelöst sind, bevor das Flattening beginnt.

Verwandte Tools