Was das Abflachen mit einem JSON-Dokument macht
Das Abflachen konvertiert ein hierarchisches JSON-Objekt in eine einstufige Map, bei der jeder ursprüngliche Schlüsselpfad zu einer Punkt-Notations-Zeichenkette wird. Zum Beispiel wird das verschachtelte Objekt {"user": {"name": "Alice", "address": {"city": "Paris"}}} zu {"user.name": "Alice", "user.address.city": "Paris"}. Alle Blattwerte bleiben erhalten.
Array-Elemente werden in den flachen Schlüssel durch ihren Index einbezogen: {"items": ["a", "b"]} wird zu {"items.0": "a", "items.1": "b"}. Dies erlaubt, das vollständige Dokument als einfachen Schlüssel-Wert-Speicher darzustellen.
Das Abflachen ist umkehrbar: Aus einer flachen Map kann die ursprüngliche verschachtelte Struktur durch Aufteilen jedes Schlüssels am Trennzeichen und Aufbau des Objektbaums rekonstruiert werden.
Trennzeichenoptionen und Randfälle
Das Standard-Trennzeichen ist ein Punkt (.). Sie können es in einen Schrägstrich (/), Unterstrich (_), doppelten Unterstrich (__) oder eine benutzerdefinierte Zeichenkette ändern. Der Punkt kann Mehrdeutigkeiten verursachen, wenn Schlüsselnamen selbst Punkte enthalten.
Wenn Schlüssel das Trennzeichen enthalten, bietet das Tool zwei Disambiguierungsstrategien: das Trennzeichen in Schlüsselnamen escapen, oder ein Trennzeichen verwenden, das in keinem Schlüssel vorkommt.
Null-Werte und leere Objekte/Arrays werden explizit behandelt. Ein null-Wert wird unverändert beibehalten. Ein leeres Objekt {} produziert keine Schlüssel. Ein leeres Array [] produziert ebenfalls keine Schlüssel.
Häufige Anwendungsfälle
Tabellen-Export: Flache Schlüssel-Wert-Paare lassen sich natürlich einer zweispaltigen Tabelle (Schlüssel | Wert) zuordnen. In Kombination mit dem JSON-zu-CSV-Tool ermöglicht das Abflachen den Export tief verschachtelter API-Antworten nach Excel.
Umgebungsvariablen-Injektion: Container-Orchestrierungssysteme speichern Konfiguration als flache Schlüssel=Wert-Paare. Das Abflachen einer JSON-Konfiguration erzeugt genau das benötigte Format.
Diff und Audit: Der Vergleich zweier flacher JSON-Maps ist einfacher als der Vergleich verschachtelter Bäume, da die Schlüsselnamen den vollständigen Pfad kodieren.