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

Typische Anwendungsfälle

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.

Artikel: JSON