JSON in CSV umwandeln
Ein Werkzeug, das ein JSON-Array in eine CSV-Tabelle umwandelt: Jedes Objekt wird zu einer Zeile, jedes Feld zu einer Spalte, die Feldnamen bilden die Kopfzeile. Gedacht für alle, die eine API-Antwort oder einen Datenexport ohne eigenes Skript in Excel oder einer Buchhaltungssoftware weiterverarbeiten möchten.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Wie aus Objekten Zeilen werden
Jedes Objekt im JSON-Array wird zu einer eigenen Zeile, die Feldnamen der Objekte werden zu den Spaltenüberschriften der ersten Zeile. Fehlt ein Feld bei einem einzelnen Objekt, bleibt die entsprechende Zelle in dieser Zeile einfach leer, statt die ganze Umwandlung abzubrechen. So entsteht aus einer beliebig verschachtelten JSON-Struktur eine einzige, durchgängige Tabelle, die sich sofort öffnen und weiterbearbeiten lässt, ohne dass Sie die Spalten von Hand anlegen müssen.
Verschachtelte Felder in flache Spalten
Enthält ein Objekt selbst wieder ein Objekt oder eine Liste, etwa mehrere Adressen zu einer Person, wird diese Verschachtelung in flache Spaltennamen aufgelöst, zum Beispiel `adresse.stadt` statt eines eigenen Unterobjekts. So bleibt die Tabelle in einer Zeile pro Datensatz lesbar, ohne dass Informationen aus der Ausgangsstruktur verloren gehen oder in einer einzigen, unübersichtlichen Spalte zusammengefasst werden, die sich später nur schwer wieder auftrennen ließe.
Für deutsches Excel vorbereitet
Standardmäßig wird ein Komma als Trennzeichen verwendet. Da deutsches Excel meist ein Semikolon erwartet, lässt sich das Trennzeichen vor dem Herunterladen umstellen, damit die Datei beim Öffnen direkt in den richtigen Spalten erscheint, ohne den Import-Assistenten von Excel manuell durchlaufen zu müssen. Auch die Zeichenkodierung wird dabei automatisch passend für Excel gesetzt, sodass Umlaute und das ß korrekt angezeigt werden, statt als falsche Zeichen zu erscheinen.
Auch der umgekehrte Weg ist möglich
Wer stattdessen eine vorhandene CSV-Tabelle in JSON umwandeln möchte, etwa um sie in eine Anwendung einzuspielen, findet die passende Umwandlung in die andere Richtung als eigene Funktion. Beide Richtungen laufen im Browser, kostenlos und ohne Limit, sodass sich Daten je nach Bedarf zwischen den beiden Formaten hin- und herbewegen lassen, ohne dass dabei Spaltennamen oder Datentypen verloren gehen. Über die API lässt sich derselbe Wechsel zwischen beiden Formaten auch in einen automatisierten Ablauf einbinden, etwa für einen regelmäßigen Datenaustausch zwischen zwei unterschiedlichen Systemen.
Anwendungsfälle
API-Antwort für einen Excel-Bericht
Anna Hoffmann wandelt die JSON-Antwort einer internen Schnittstelle in eine CSV-Tabelle um, um daraus einen wöchentlichen Bericht in Excel zu erstellen.
Export aus einer Buchhaltungssoftware
Katrin Baumann erhält einen JSON-Export ihrer Buchhaltungssoftware und wandelt ihn in CSV um, damit ihre Steuerberatung die Datei ohne Zusatzsoftware öffnen kann.
Kassendaten aus mehreren Filialen
Bäckerei Hoffmann e. K. wandelt den täglichen JSON-Export der Kassensysteme in CSV um, um die Umsätze aller Filialen in einer Tabelle auszuwerten.
Häufige Fragen
Nutzt die CSV-Ausgabe das Semikolon, wie es deutsches Excel erwartet?
Standardmäßig ein Komma; vor dem Herunterladen lässt sich auf Semikolon umstellen, damit deutsches Excel die Datei ohne Import-Assistent korrekt öffnet.
Was passiert mit verschachtelten Objekten oder Listen im JSON?
Sie werden zu flachen Spaltennamen wie `adresse.stadt` aufgelöst, damit jede Zeile in der Tabelle einem vollständigen Datensatz entspricht.
Gibt es ein Limit für die Dateigröße?
Die JSON-Datei darf bis zu 25 MB groß sein, was für die meisten API-Exporte deutlich ausreicht.
Was kostet die Umwandlung über die API?
$0.002 pro Anfrage, unabhängig von der Anzahl der Zeilen in der Ausgabe.
Bleiben meine Daten irgendwo gespeichert?
Nein. Im Browser verlässt die Datei Ihr Gerät nicht; über die API wird sie nur zur Umwandlung verwendet und danach nicht aufbewahrt.
Brauche ich ein Konto?
Nein, weder im Browser noch bei Nutzung über die API ist ein Konto erforderlich.
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/json-to-csv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/json-to-csv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/json-to-csv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/json-to-csv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/json-to-csv", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "…"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.json_to_csv",
"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. |