JSON Flatten
Online-Tool zum Abflachen und Rückabflachen von JSON. Wandelt verschachteltes JSON mit einem Klick in flache Schlüssel-Wert-Paare mit Punktnotation um. Mit benutzerdefinierten Trennzeichen, Array-Index-Erweiterung und vollständiger Rückumwandlung — alles lokal verarbeitet für mehr Datenschutz.
Ähnliche Tools
Anwendungsfälle
- MongoDB-Abfragen und Aggregationen: verschachteltes JSON in flache Punktnotation-Strukturen umwandeln und die Schlüssel direkt in find-Abfragen, update-Anweisungen und Aggregations-Pipelines verwenden — ohne Pfade per Hand zu schreiben
- CSV-/Excel-Export: mehrfach verschachtelte Objekte abflachen und die Schlüssel in Punktnotation als Spaltenüberschriften beim Import in einen Pandas-DataFrame oder in Excel verwenden, ein Datensatz pro Zeile
- Elasticsearch-Indizierung: flache Dokumente lassen sich in Suchmaschinen leichter speichern und abfragen — verschachtelte Array-Felder komplett in einstufige Schlüssel-Wert-Paare aufklappen
- API-Debugging: verschachtelte Strukturen von Anfragen und Antworten nebeneinander vergleichen; abgeflachte Feldnamen sind intuitiver und erleichtern das Auffinden fehlender oder typfalscher Felder
- Konfigurationsvorverarbeitung: verschachtelte Konfigurationsdateien wie package.json oder settings.json in flache Umgebungsvariablen umwandeln, um sie in Docker-Container oder CI-Pipelines einzuspeisen
- Logs und Monitoring: komplexe, tief verschachtelte Log-Ereignisse abflachen, bevor sie in ein Data Warehouse geschrieben werden, damit sie feldweise aggregiert und visualisiert werden können
Anleitung
- Fügen Sie das zu verarbeitende JSON in das linke Eingabefeld ein, oder klicken Sie auf Hochladen, um eine lokale .json-Datei auszuwählen. Über die Schaltfläche Beispiel können Sie auch ein vorbereitetes verschachteltes Beispiel laden
- Wechseln Sie in der Werkzeugleiste zwischen Flatten und Unflatten und stellen Sie im Optionsbereich unten das Trennzeichen, die Array-Behandlung sowie die maximale Aufklapptiefe ein
- Das Tool verarbeitet automatisch in Echtzeit; im rechten Bereich erscheint sofort das Ergebnis zusammen mit der Anzahl der Schlüssel und der maximalen Tiefe
- Klicken Sie auf Kopieren, um das Ergebnis in die Zwischenablage zu legen, oder auf Herunterladen, um es als .json-Datei auf Ihrem Gerät zu speichern
Funktionen
- Bidirektionale Umwandlung: unterstützt sowohl JSON Flatten als auch Unflatten, damit jederzeit verlustfrei zwischen verschachtelter und flacher Struktur gewechselt werden kann
- Benutzerdefiniertes Trennzeichen: standardmäßig ein Punkt, kann aber auch auf Unterstrich, Schrägstrich, Doppelunterstrich oder ein beliebiges Zeichen umgestellt werden, um unterschiedliche nachgelagerte Systeme zu unterstützen
- Konfigurierbare Array-Verarbeitung: Arrays entweder zu indexierten Schlüsseln aufklappen (z. B. items.0, items.1) oder als einzelnen Wert belassen, um sowohl tabellarische als auch konfigurationsorientierte Workflows abzudecken
- Maximale Tiefenbegrenzung: die Aufklapptiefe kann begrenzt werden, um extrem lange Schlüssel aus tief verschachtelten Strukturen zu vermeiden
- Echtzeit-Statistik: nach der Verarbeitung werden sofort die Gesamtzahl der Schlüssel und die maximale Tiefe angezeigt, um die Ausgabegröße einzuschätzen
- Lokale Verarbeitung für Datenschutz: das gesamte Parsen und Umwandeln findet im Browser statt, es werden keine JSON-Daten hochgeladen — ideal für sensible APIs und Produktionskonfigurationen
- Dateiupload und Beispieldaten: eine .json-Datei hochladen oder die eingebauten Beispieldaten mit einem Klick laden, um die Umwandlung schnell zu prüfen
- Kopieren und Herunterladen: das Ergebnis mit einem Klick in die Zwischenablage kopieren oder als standardmäßige .json-Datei für die Weiterverarbeitung herunterladen
Codebeispiele
JSON mit JavaScript abflachen
javascriptfunction flatten(obj, prefix = '', sep = '.') {
return Object.entries(obj).reduce((acc, [key, value]) => {
const newKey = prefix ? `${prefix}${sep}${key}` : key;
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
Object.assign(acc, flatten(value, newKey, sep));
} else {
acc[newKey] = value;
}
return acc;
}, {});
}
flatten({ user: { name: 'Alice', contact: { email: 'a@x.com' } } });
// => { 'user.name': 'Alice', 'user.contact.email': 'a@x.com' }JSON mit Python abflachen
pythondef flatten(obj, parent_key='', sep='.'):
items = {}
for key, value in obj.items():
new_key = f"{parent_key}{sep}{key}" if parent_key else key
if isinstance(value, dict):
items.update(flatten(value, new_key, sep))
else:
items[new_key] = value
return items
import json
print(json.dumps(flatten({'user': {'name': 'Alice'}}), indent=2))
# => {"user.name": "Alice"}JSON mit jq auf der Kommandozeile abflachen
bash# Verschachteltes JSON in flache Punktnotation-Struktur umwandeln
jq '[paths(scalars) as $p | {"key": $p | join("."), "value": getpath($p)}] | from_entries' data.json
# Flaches JSON zurück in verschachtelte Struktur überführen
# Drittfilter mit jq 1.7+ verwenden oder direkt den Unflatten-Modus dieses Tools nutzen.Häufig gestellte Fragen
Was ist JSON Flatten und wann wird es gebraucht?
JSON Flatten ist die Umwandlung eines mehrfach verschachtelten Objekts oder Arrays in eine einstufige Schlüssel-Wert-Struktur, bei der verschachtelte Schlüssel durch ein Trennzeichen (standardmäßig einen Punkt) verbunden werden. Aus {"user":{"name":"Alice"}} wird so zum Beispiel {"user.name":"Alice"}. Es wird immer dann gebraucht, wenn verschachteltes JSON nach CSV exportiert, in MongoDB mit Punktnotation abgefragt, in Elasticsearch indiziert, in Umgebungsvariablen umgewandelt oder an ein nachgelagertes System übergeben werden soll, das nur flache Schlüssel akzeptiert.
Kann abgeflachtes JSON wieder in eine verschachtelte Struktur zurückgeführt werden?
Ja. Dieses Tool enthält einen Unflatten-Modus. Solange das Trennzeichen übereinstimmt, stellt es flache Schlüssel-Wert-Paare verlustfrei als verschachtelte Objekte und Arrays wieder her und erkennt automatisch aufeinanderfolgende ganzzahlige Indizes (0, 1, 2…), um sie als Array zu rekonstruieren — ohne dass ein zusätzlicher Schalter nötig ist.
Lässt sich das Trennzeichen anpassen? Wie werden Arrays behandelt?
Ja. Das Trennzeichen kann ein Punkt, Unterstrich, Schrägstrich, Doppelunterstrich oder ein beliebiges Zeichen mit bis zu 3 Zeichen Länge sein. Für Arrays gibt es zwei Modi: standardmäßig wird jedes Element zu einem numerischen Schlüssel wie items.0 oder items.1 aufgeklappt; alternativ kann das gesamte Array als einzelner Wert übernommen werden. Zusätzlich kann eine maximale Aufklapptiefe festgelegt werden (0 = unbegrenzt), und jede tiefer verschachtelte Ebene wird als Ganzes beibehalten, um allzu lange Schlüssel zu vermeiden.
Werden meine Daten bei der Online-Verarbeitung von JSON offengelegt?
Nein. Das gesamte Parsen, Abflachen und Rückabflachen findet lokal in Ihrem Browser statt. Die JSON-Daten werden an keinen Server übertragen. Produktive APIs, laufende Konfigurationen und persönliche Daten verlassen das Gerät nicht, sodass die Nutzung bedenkenlos möglich ist.
Wie wird JSON Flatten mit MongoDB verwendet?
MongoDB verwendet standardmäßig die Punktnotation, um auf verschachtelte Felder zuzugreifen. Sollen beispielsweise Dokumente gefunden werden, bei denen user.contact.email gleich alice@example.com ist, lautet die Abfrage { "user.contact.email": "alice@example.com" }. Nachdem Sie Ihr verschachteltes JSON mit diesem Tool in eine flache Punktstruktur umgewandelt haben, können die entsprechenden Schlüssel direkt in find-Abfragen, update-Anweisungen und Aggregations-Pipelines eingefügt werden, sodass das Schreiben der Pfade per Hand entfällt.
Wie wird abgeflachtes JSON nach CSV oder Excel exportiert?
Die abgeflachte Ausgabe ist bereits eine einstufige Schlüssel-Wert-Struktur, in der sich alle Felder eines Datensatzes auf derselben Ebene befinden. Sie lässt sich direkt in unser Werkzeug JSON zu CSV kopieren oder in Excel bzw. Pandas mit den Schlüsseln in Punktnotation als Spaltenüberschriften importieren. Für Arrays von Objekten sollte eine maximale Tiefe gesetzt oder das Array als Ganzes übernommen werden, damit ein Datensatz nicht auf mehrere Zeilen aufgeteilt wird.
Wann sind Unterstrich oder Schrägstrich als Trennzeichen sinnvoll?
Der Punkt (user.address.city) ist die universellste Wahl und eignet sich für JS-Objekte und MongoDB-Abfragen. Der Unterstrich (user_address_city) passt zu SQL-Spaltennamen, Python-Variablennamen und Umgebungsvariablen. Der Schrägstrich (user/address/city) wirkt wie ein Dateipfad und wird häufig in Pfadparametern von REST-APIs verwendet. Der Doppelunterstrich (user__address__city) eignet sich für Konfigurationen im Django-Stil, die ohnehin stark mit Unterstrichen arbeiten.
Was passiert, wenn Schlüsselnamen Punkte oder Unterstriche enthalten?
Es kommt zu einem Konflikt. Enthält ein Schlüssel zum Beispiel den Namen user.name und wird mit Punkt als Trennzeichen abgeflacht, ergibt sich user.name.name, und beim Rückabflachen wird er als user → name → name in zwei Ebenen zerlegt. Enthalten Schlüsselnamen das Trennzeichen, sollte auf ein Trennzeichen gewechselt werden, das in den Schlüsseln nicht vorkommt (Schrägstrich, Doppelunterstrich oder ein eigenes Zeichen), oder die Originalschlüssel werden vor der Verarbeitung mit Escape versehen bzw. umbenannt.
Wie werden Objekte innerhalb eines Arrays aufgeklappt?
Standardmäßig werden sie mit numerischen Indizes aufgeklappt. Zwei Objekte in einem orders-Array werden so zu orders.0.id, orders.0.total, orders.1.id und orders.1.total. Erwartet das nachgelagerte System eine Tabelle mit einer Zeile pro Datensatz, entspricht diese Struktur direkt mehreren CSV-Zeilen. Beim Rückabflachen werden aufeinanderfolgende ganzzahlige Indizes (0, 1, 2…) automatisch als Array wiederhergestellt, ohne dass ein zusätzlicher Schalter erforderlich ist.
Frieren sehr große JSON-Dateien die Seite ein?
Dieses Tool läuft in Ihrem Browser. Übliche API-Antworten (wenige zig bis einige Hundert KB) sind in Sekunden verarbeitet. Für sehr große Dateien (mehrere MB und mehr) empfiehlt sich ein lokales Kommandozeilenwerkzeug wie jq, um den Browser-Speicher nicht zu überlasten. Muss es dennoch online verarbeitet werden, sollten Felder zunächst komprimiert oder gestutzt und das JSON in mehrere Chargen aufgeteilt werden.
Wozu dient die maximale Tiefenbegrenzung?
Die maximale Tiefenbegrenzung kappt die Aufklappung auf die angegebene Ebene; tiefer verschachtelte Objekte werden als einzelner Wert übernommen. Sie hat zwei wesentliche Zwecke: Erstens verhindert sie, dass tief verschachtelte Konfigurationen überlange Pfad-Schlüssel erzeugen; zweitens wahrt sie die Spaltenlängengrenzen nachgelagerter Datenbanken (einige SQL-Server-Spalten sind auf 128 Zeichen begrenzt). Der Standardwert 0 bedeutet keine Begrenzung; passen Sie ihn an Ihren Anwendungsfall an.
Kann das umgewandelte Ergebnis gespeichert oder erneut verwendet werden?
Ja. Nach der Verarbeitung kann das Ergebnis mit einem Klick in die Zwischenablage kopiert oder direkt als standardmäßige .json-Datei heruntergeladen werden. Alles geschieht lokal, eine Registrierung ist nicht nötig, und es wird nichts serverseitig zwischengespeichert.
Fehlerbehebung
Die Meldung 'Eingabe ist kein gültiges JSON' erscheint
Ursache: der JSON-Text enthält einen Syntaxfehler, zum Beispiel fehlende Anführungszeichen, überflüssige Kommata, nicht geschlossene Klammern oder Python-artige Booleans (True/False). Lösung: zuerst mit dem eingebauten Formatierer / Validator prüfen. Booleans und null müssen klein geschrieben und ohne Anführungszeichen stehen, Schlüssel müssen in doppelte Anführungszeichen eingeschlossen sein.
Nach dem Abflachen kollidieren Schlüsselnamen und das Rückabflachen zerlegt die Ebenen falsch
Ursache: ein Originalschlüssel enthält bereits das gewählte Trennzeichen (zum Beispiel user.name beim Abflachen mit Punkt). Lösung: auf ein Trennzeichen wechseln, das in den Schlüsseln nicht vorkommt (Schrägstrich, Doppelunterstrich oder eigenes Zeichen), oder die Originalschlüssel vor der Verarbeitung mit Escape versehen bzw. umbenennen.
Mein Array wird beim CSV-Export auf mehrere Zeilen aufgeteilt
Ursache: standardmäßig werden Array-Elemente mit numerischen Indizes aufgeklappt, sodass jedes Element eigene Schlüssel-Wert-Paare erzeugt, die sich mit den übrigen Feldern zu mehreren Datensätzen kreuzen. Lösung: für eine Zeile pro Objekt die Option 'Array als einzelnen Wert übernehmen' aktivieren oder im CSV-Werkzeug das Aufklappen der Array-Felder deaktivieren. Soll pro Array-Element eine eigene Zeile entstehen, ist dieses Verhalten beabsichtigt.
Das Ergebnis des Rückabflachens ist kein Array
Ursache: nur Schlüssel mit aufeinanderfolgenden ganzzahligen Indizes (0, 1, 2…) werden als Arrays wiederhergestellt. Schlüssel wie orders.first oder orders.second werden als Objektschlüssel behandelt. Lösung: numerische Indizes beim Abflachen nicht umbenennen oder die Schlüssel der Array-Felder vor dem Rückabflachen manuell in die reine Zahlenform (orders.0, orders.1) bringen.
Die Spaltennamen der Datenbank werden abgeschnitten
Ursache: tief verschachteltes JSON kann Pfad-Schlüssel erzeugen, die länger als die Spaltenlängengrenze der nachgelagerten Datenbank (zum Beispiel SQL Server oder PostgreSQL) sind. Lösung: im Optionsbereich eine maximale Aufklapptiefe setzen — tiefer verschachtelte Ebenen werden als Ganzes übernommen. Alternativ die verschachtelten Daten umstrukturieren oder die tiefen Pfad-Schlüssel vor der Verarbeitung umbenennen.
Der Browser hängt oder stürzt bei großen Dateien ab
Ursache: sehr große JSON-Dateien (zig MB und mehr) verbrauchen viel Browser-Speicher und können die Seite unresponsive machen. Lösung: die Datei in kleinere Stücke aufteilen oder auf ein Kommandozeilenwerkzeug (jq, flatten-json, Python-Skript) wechseln. Dieses Online-Werkzeug eignet sich am besten für API-Antworten, Konfigurationsdateien und Log-Einträge in üblicher Größe.
- JSON-Komprimierung
- CSV zu JSON
- JSON zu CSV
- JSON Diff
- JSON Escape / Unescape
- JSON Flatten
- JSON-Formatierung
- JSON-Generator
- JSONPath Online-Abfrage
- JSON zusammenführen
- JSON reparieren
- JSON Schema Validator
- JSON sortieren
- JSON Stringify
- JSON zu HTML-Tabelle
- JSON zu Java
- JSON zu Markdown
- JSON in SQL umwandeln
- JSON zu TOML
- JSON zu TypeScript
- XML zu JSON
- JSON zu XML
- YAML zu JSON
- JSON zu YAML
- JSON zu Python
- JSON zu Go
- JSON zu Rust
- JSON zu Swift
- JSON zu C#
- JSON zu C++
- JSON zu PHP