JSON
JSON Path Extractor / Flatten
Verschachteltes JSON in eine flache Liste "Pfad: Wert" auflösen (Flatten) und wieder in eine verschachtelte Struktur zusammensetzen (Unflatten). Die Pfadnotation ist dieselbe wie bei JSONPath/JSON Diff: store.book[0].price.
Tief verschachteltes JSON ist schwer programmatisch zu vergleichen oder zu durchlaufen. Flatten rollt eine solche Struktur zu einer flachen Liste von „Pfad: Wert"-Paaren auf (z. B. store.book[0].price: 12.99), und Unflatten baut sie wieder auf.
So verwendest du es
- Flatten: Füge verschachteltes JSON ein und erhalte eine flache Liste aller Blattwerte mit ihrem vollständigen Pfad.
- Unflatten: Füge eine Liste von „Pfad: Wert"-Paaren ein, um daraus eine verschachtelte JSON-Struktur zu bauen.
- Die Pfadnotation entspricht den JSONPath- und JSON-Diff-Tools dieser Website — items[0].name für Array-Elemente.
Typische Anwendungsfälle
- Eine tief verschachtelte API-Antwort in eine flache Liste umwandeln, um sie in eine Tabelle oder ein Analysesystem zu importieren.
- Ein Übersetzungswörterbuch oder eine Konfiguration aus flachen Schlüsseln (form.errors.email) zurück in verschachteltes JSON aufbauen.
- Schnell alle Werte zu einem bestimmten Thema in einem sehr großen JSON-Dokument über eine flache Pfadliste finden.
Was du wissen solltest
Die Notation für Array-Indizes unterscheidet sich zwischen Bibliotheken — dieses Tool verwendet items[0], manche schreiben aber items.0 ohne Klammern.
Unflatten erfordert, dass sich Pfade nicht widersprechen (z. B. one und gleichzeitig one.two) — sonst lässt sich die Struktur nicht eindeutig wiederherstellen.
Artikel zu diesem Tool: JSON Flatten: eine verschachtelte Struktur in eine flache Liste verwandeln
Häufig gestellte Fragen
Wie werden Array-Elemente im flachen Pfad dargestellt?
Sie werden zu nummerierten Schlüsseln im Pfad, etwa store.book[0].price, wobei die Zahl in eckigen Klammern den Index des Elements im Array angibt.
Lässt sich das Flatten wieder rückgängig machen?
Ja, der Unflatten-Modus baut aus einer Liste „Pfad: Wert“ wieder verschachteltes JSON auf, mit derselben Pfadnotation wie beim Flatten.
Wird das JSON auf einem externen Server verarbeitet?
Nein, sowohl Flatten als auch Unflatten laufen vollständig im Browser über JavaScript, ohne dass Daten an einen Server gesendet werden.
Was passiert, wenn ein echter Schlüssel selbst einen Punkt enthält?
Das ist eine mehrdeutige Situation: Der Pfad user.name kann sowohl ein verschachteltes Objekt {"user": {"name": ...}} als auch einen flachen Schlüssel {"user.name": ...} bedeuten. Die Punktnotation unterscheidet das nicht, weshalb solche Schlüssel am besten vermieden oder gesondert behandelt werden sollten.
Ist das Pfadformat bei allen ähnlichen Tools gleich?
Nein. Die Punktnotation für Objekte (user.name) ist praktisch überall verbreitet, aber die Notation für Array-Indizes unterscheidet sich: Hier wird items[0] verwendet, manche Bibliotheken schreiben aber items.0 ohne Klammern.