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.