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.
Deeply nested JSON is hard to compare or iterate over programmatically. Flatten unrolls such a structure into a flat list of "path: value" pairs (e.g. store.book[0].price: 12.99), and Unflatten rebuilds it.
How to use it
- Flatten: paste nested JSON and get a flat list of every leaf value with its full path.
- Unflatten: paste a list of "path: value" pairs to rebuild a nested JSON structure from it.
- The path notation matches this site's JSONPath and JSON Diff tools — items[0].name for array elements.
Common uses
- Turning a deeply nested API response into a flat list for import into a spreadsheet or analytics system.
- Building a translation dictionary or config back into nested JSON from flat keys (form.errors.email).
- Quickly finding every value on a given topic in a very large JSON document via a flat path list.
Things to keep in mind
Array index notation varies between libraries — this tool uses items[0], though some write items.0 without brackets.
Unflatten requires that paths don't conflict with each other (e.g. one and one.two at the same time) — otherwise the structure can't be unambiguously rebuilt.
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.