Verschachteltes JSON mit Punktpfaden in Tabelle umwandeln
Wandeln Sie ein verschachteltes JSON-Objekt oder -Array in eine einfache Folge von Schlüssel-Wert-Zeilen um, ohne ein eigenes Traversierungsskript zu schreiben.
Im Browser ausführen – kostenlos
Jede verschachtelte Eigenschaft erhält einen Punktpfad, Arraypositionen werden zu numerischen Segmenten. Eine Bestellnummer lässt sich dadurch einheitlich als orders.0.id ansprechen. Das Ergebnis eignet sich für Tabellenkalkulationen, Stagingtabellen in Datenbanken, Protokolle, Zuordnungswerkzeuge und alle Abläufe, die vorhersehbare Pfade statt verschachtelter Strukturen benötigen. Die Verarbeitung ist deterministisch, bewahrt JSON-Werttypen und weist fehlerhaftes JSON oder einen skalaren Wurzelwert mit einer klaren Eingabemeldung zurück.
Erzeugen Sie vorhersehbare Pfade aus verschachtelten Daten
Verschachteltes JSON ist für API ideal, weil zusammengehörige Werte gruppiert bleiben. Viele Berichts- und Importwerkzeuge erwarten jedoch eine flache Feldfolge. Diese Funktion durchläuft jede Objekteigenschaft und jedes Arrayelement und verbindet die einzelnen Segmente mit einem Punkt. Ein Wert im Objekt customer unter der Eigenschaft name wird zu customer.name. Das erste Element des Arrays orders wird über orders.0 angesprochen, seine Kennung somit über orders.0.id. Jedes Blatt erscheint als Zeile mit Schlüssel und Wert. Dadurch lässt sich die Ausgabe leicht anzeigen, filtern oder in Spalten umformen. Der Durchlauf hält die Reihenfolge des eingelesenen JSON ein und liefert für dieselbe Eingabe stabile Ergebnisse. Zeichenfolgen, Zahlen und boolesche Werte behalten ihren Typ; null bleibt ebenfalls erhalten. Leere Objekte und Arrays werden als Werte ausgegeben und verschwinden nicht unbemerkt. So dokumentiert die abgeflachte Ausgabe weiterhin, dass die betreffenden Pfade im Quelldokument vorhanden waren.
Bereiten Sie die Eingabe vor und lesen Sie die Ausgabe
Übergeben Sie das vollständige JSON-Dokument als Text im Feld json. Der Wurzelwert muss ein Objekt oder Array sein. So wird ein mehrdeutiger leerer Schlüssel für alleinstehende Zeichenfolgen, Zahlen, boolesche Werte oder null vermieden. Namen von Objekteigenschaften werden unverändert übernommen, Arrayindizes als bei null beginnende numerische Segmente geschrieben. Die Antwort enthält pairs, ein Array mit Einträgen aus den Feldern key und value, das direkt als Tabellenzeilen verarbeitet werden kann. Ist die Wurzel selbst ein leeres Objekt oder Array, wird eine leere Zeichenfolge als Schlüssel ausgegeben und der leere Container als Wert erhalten. Punkte, die bereits in einem ursprünglichen Eigenschaftsnamen vorkommen, werden nicht maskiert. Eine wörtliche Eigenschaft user.name erzeugt daher denselben sichtbaren Pfad wie ein verschachteltes Objekt user mit name. Wenn Ihre Daten gepunktete Eigenschaftsnamen verwenden und Pfade eindeutig rückführbar sein müssen, benennen Sie diese Eigenschaften vorher um oder bewahren Sie das ursprüngliche JSON zusammen mit dem flachen Ergebnis auf.
Nutzen Sie flache Paare in Datenabläufen
Die abgeflachten Paare sind eine praktische Zwischendarstellung. Eine Tabellenautomatisierung kann Schlüssel und Werte in getrennte Spalten schreiben; ein Importprozess kann ausgewählte Pfade in die Spalten einer breiten Zeile drehen; ein Vergleichswerkzeug kann Paare nach Schlüsseln indizieren und anschließend zwei Dokumente prüfen. Numerische Arraysegmente kennzeichnen wiederholte Datensätze eindeutig, statt Werte verschiedener Elemente zu vermischen. Da der Vorgang keine Netzwerkanfragen sendet und weder Zufallswerte noch Zeitstempel oder Modellinferenz verwendet, erzeugt identischer JSON-Text stets dieselbe Ausgabe. Ungültiges JSON schlägt ohne Teilergebnis fehl; gültiges skalares JSON wird ebenfalls abgewiesen, weil es den Objekt-oder-Array-Vertrag nicht erfüllt. Die API kostet $0.002 pro Element, während der Browser dieselbe deterministische Logik lokal ausführen kann. Bei sehr großen Dokumenten kann ein Streaming- oder schemaspezifischer Prozess geeigneter sein, denn das Abflachen erzeugt für jedes primitive Blatt und jeden leeren Container im gesamten Dokument eine Ausgabezeile.
Anwendungsfälle
Bereiten Sie eine API-Antwort für Tabellen auf
Wandeln Sie verschachtelte Antwortfelder in eindeutige Pfade um, die Sie auswählen, zuordnen oder als Schlüssel-Wert-Zeilen anzeigen können.
Erstellen Sie Importzuordnungen
Prüfen Sie Punktpfade, bevor Sie ausgewählte JSON-Werte Spalten einer Tabellenkalkulation oder Datenbank zuweisen.
Vergleichen Sie strukturierte Datensätze
Flachen Sie zwei Objekte zu stabilen Pfad-Wert-Folgen ab, damit Unterschiede anhand vollständiger Pfade auffallen.
Häufige Fragen
Was kostet die Verarbeitung?
Jedes API-Element kostet $0.002. Der Browser kann die Eingabe kostenlos lokal verarbeiten.
Wie werden Arrays dargestellt?
Positionen werden zu bei null beginnenden numerischen Pfadsegmenten, etwa orders.0.id und orders.1.id.
Bleiben JSON-Werttypen erhalten?
Ja. Zeichenfolgen, Zahlen, boolesche Werte, null und leere Container behalten im Feld value ihren JSON-Typ.
Was geschieht mit leeren Objekten und Arrays?
Sie werden als Blattwerte ausgegeben, damit ihre Pfade erhalten bleiben. Ein leerer Wurzelcontainer nutzt einen leeren Schlüssel.
Kann eine JSON-Zeichenfolge oder Zahl die Wurzel bilden?
Nein. Die eingelesene Wurzel muss ein Objekt oder Array sein; skalare Wurzeln führen zu einem Eingabefehler.
Werden Punkte in ursprünglichen Eigenschaftsnamen maskiert?
Nein. Namen bleiben unverändert; benennen Sie gepunktete Eigenschaften vorher um, wenn Pfade eindeutig rückführbar sein müssen.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/data/flatten-nested-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"json":"{\"customer\":{\"name\":\"Ada\",\"address\":{\"city\":\"London\"}},\"orders\":[{\"id\":7,\"paid\":true}]}"}'const res = await fetch("https://api.kit.forhosting.com/data/flatten-nested-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"json": "{\"customer\":{\"name\":\"Ada\",\"address\":{\"city\":\"London\"}},\"orders\":[{\"id\":7,\"paid\":true}]}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/flatten-nested-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"json": "{\"customer\":{\"name\":\"Ada\",\"address\":{\"city\":\"London\"}},\"orders\":[{\"id\":7,\"paid\":true}]}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/flatten-nested-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"json":"{\\"customer\\":{\\"name\\":\\"Ada\\",\\"address\\":{\\"city\\":\\"London\\"}},\\"orders\\":[{\\"id\\":7,\\"paid\\":true}]}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"json":"{\"customer\":{\"name\":\"Ada\",\"address\":{\"city\":\"London\"}},\"orders\":[{\"id\":7,\"paid\":true}]}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/flatten-nested-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"json": "{\"customer\":{\"name\":\"Ada\",\"address\":{\"city\":\"London\"}},\"orders\":[{\"id\":7,\"paid\":true}]}"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.flatten_nested_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |