JSON in CSV umwandeln
Wandeln Sie ein JSON-Array zuverlässig in CSV um, ohne ein Skript zu schreiben oder unbemerkt verschobene Spalten durch uneinheitliche Datensätze zu riskieren.
Im Browser ausführen – kostenlos
Dieser strenge Konverter verwendet die Schlüssel des ersten Objekts als Kopfzeile, prüft alle Objekte auf exakt dieselben Schlüssel und maskiert Kommas, Anführungszeichen sowie Zeilenumbrüche nach den CSV-Regeln. Leere Arrays, verschachtelte Werte, ungültiges JSON und unpassende Datensätze führen zu einer klaren Fehlermeldung statt zu einer mehrdeutigen Tabelle. Dieselbe deterministische Umwandlung ist im Browser und per API verfügbar.
Bereiten Sie ein einheitliches Array flacher Objekte vor
Beginnen Sie mit gültigem JSON, dessen oberster Wert ein Array ist. Jedes Element muss ein Objekt sein, und jeder Feldwert muss ein JSON-Skalar sein: Zeichenfolge, Zahl, boolescher Wert oder null. Verschachtelte Objekte und Arrays werden bewusst abgelehnt, weil es keine einzig richtige Methode gibt, eine verschachtelte Struktur in einer CSV-Zelle abzubilden. Manche Konverter wandeln verschachtelte Werte in Text um, andere verflachen Pfade oder vervielfachen Zeilen; jede Variante verändert die Bedeutung der Daten. Dieses Werkzeug bleibt vorhersehbar, indem es vor der Umwandlung eine ausdrücklich tabellarische Struktur verlangt. Das Array muss mindestens ein Objekt enthalten, und das erste Objekt benötigt mindestens einen Schlüssel. Seine Schlüsselreihenfolge bestimmt die CSV-Spaltenreihenfolge. Ordnen Sie den ersten Datensatz daher so an, wie die Tabelle später erscheinen soll. Die Reihenfolge der JSON-Objektschlüssel bleibt erhalten. Werte dürfen Kommas, Anführungszeichen, Wagenrückläufe oder Zeilenumbrüche enthalten; Sie müssen diese nicht selbst für CSV maskieren, da die Serialisierung dies nach dem Parsen des JSON übernimmt.
Verstehen Sie die strenge Prüfung von Kopfzeile und Zeilen
Die Kopfzeile wird ausschließlich aus den Schlüsseln des ersten Objekts abgeleitet. Anschließend wird jedes weitere Objekt mit dieser Kopfzeile als vollständiger Schlüsselmenge verglichen. Ein Datensatz mit einem fehlenden Schlüssel schlägt ebenso fehl wie ein Datensatz mit einem zusätzlichen Schlüssel, selbst wenn dessen Wert leer oder null ist. Die Reihenfolge der Schlüssel in späteren Objekten spielt keine Rolle: Werte werden immer in der Spaltenreihenfolge des ersten Objekts ausgegeben. Diese strenge Prüfung verhindert schwer erkennbare Exportfehler. Ein nachsichtiger Konverter könnte eine stetig wachsende Spaltenmenge bilden, unerklärliche Lücken hinterlassen oder Daten abhängig von dem Datensatz verschieben, der eine Eigenschaft erstmals enthält. Hier wird eine uneinheitliche Eingabe mit einem Fehler beendet, der das unpassende Element nennt. null ist als absichtlicher flacher Wert zulässig und wird zu einer leeren CSV-Zelle. Fehlende Schlüssel gelten nicht als null, da Abwesenheit und ein ausdrückliches null im Quellsystem verschiedene Zustände bezeichnen können. Prüfen oder vereinheitlichen Sie unregelmäßige Datensätze vorab.
Nutzen Sie CSV sicher in Tabellen und Abläufen
Nach der Prüfung wird jede Überschrift und jeder Wert als CSV-Zelle serialisiert. Zellen mit Komma, Anführungszeichen, Wagenrücklauf oder Zeilenumbruch werden in doppelte Anführungszeichen eingeschlossen; enthaltene Anführungszeichen werden verdoppelt. Zahlen und boolesche Werte behalten ihre JSON-Textdarstellung, während null eine leere Zelle erzeugt. Das Ergebnis besteht aus einer Kopfzeile und je einer Zeile pro Objekt, verbunden durch Zeilenvorschubzeichen. Da der Algorithmus deterministisch arbeitet und weder Netzwerk, Uhr, Zufall, Modell noch externen Dienst verwendet, erzeugt dieselbe Eingabe stets dieselbe Ausgabe. Damit eignet er sich für Tests, geplante Exporte, Build-Schritte und reproduzierbare Datenübergaben. Fügen Sie JSON im Browser ein und kopieren Sie das erzeugte CSV, ohne die Daten anderweitig zu senden. Für Automatisierungen rufen Sie die API zum veröffentlichten Preis von $0.002 pro Anfrage auf. Speichern Sie den zurückgegebenen Text mit der Endung .csv und öffnen oder importieren Sie ihn mit dem Komma als Trennzeichen.
Anwendungsfälle
API-Datensätze für Tabellen exportieren
Wandeln Sie ein einheitliches Array einer internen API in Spalten um, die Betriebs- oder Finanzteams sortieren, filtern und prüfen können.
Deterministische Testdaten erstellen
Erzeugen Sie stabile CSV-Testdateien aus JSON-Datensätzen und brechen Sie sofort ab, wenn ein Datensatz ein Feld ergänzt oder auslässt.
Eine tabellarische Übergabe prüfen
Erzwingen Sie ein gemeinsames Schema für alle Datensätze, bevor Sie CSV an Import, Analyse, Kundschaft oder Berichtssysteme übergeben.
Häufige Fragen
Wie wird die CSV-Kopfzeile ausgewählt?
Der Konverter verwendet die Schlüssel des ersten Objekts in ihrer vorhandenen Reihenfolge. Alle späteren Objekte müssen genau dieselbe Schlüsselmenge besitzen.
Was geschieht bei unterschiedlichen Objektschlüsseln?
Die Umwandlung endet mit einem Eingabefehler, der das unpassende Element nennt. Zusätzliche und fehlende Schlüssel werden gleichermaßen abgelehnt.
Sind verschachtelte Objekte oder Arrays als Werte erlaubt?
Nein. Jeder Wert muss eine Zeichenfolge, Zahl, ein boolescher Wert oder null sein. Normalisieren oder verflachen Sie verschachtelte Daten vorher.
Wie werden Kommas, Anführungszeichen und Umbrüche maskiert?
Eine Zelle mit einem dieser Zeichen wird in doppelte Anführungszeichen gesetzt; jedes enthaltene Anführungszeichen wird verdoppelt.
Was kostet die Umwandlung über die API?
Jede erfolgreiche API-Anfrage kostet $0.002. Die Browserversion wird lokal und kostenlos ausgeführt.
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/web/json-to-csv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"[{\"name\":\"Ada\",\"role\":\"Engineer\",\"active\":true},{\"name\":\"Grace\",\"role\":\"Admiral\",\"active\":false}]"}'const res = await fetch("https://api.kit.forhosting.com/web/json-to-csv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "[{\"name\":\"Ada\",\"role\":\"Engineer\",\"active\":true},{\"name\":\"Grace\",\"role\":\"Admiral\",\"active\":false}]"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/json-to-csv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "[{\"name\":\"Ada\",\"role\":\"Engineer\",\"active\":true},{\"name\":\"Grace\",\"role\":\"Admiral\",\"active\":false}]"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/json-to-csv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"[{\\"name\\":\\"Ada\\",\\"role\\":\\"Engineer\\",\\"active\\":true},{\\"name\\":\\"Grace\\",\\"role\\":\\"Admiral\\",\\"active\\":false}]"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"[{\"name\":\"Ada\",\"role\":\"Engineer\",\"active\":true},{\"name\":\"Grace\",\"role\":\"Admiral\",\"active\":false}]"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/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": "[{\"name\":\"Ada\",\"role\":\"Engineer\",\"active\":true},{\"name\":\"Grace\",\"role\":\"Admiral\",\"active\":false}]"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.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
timeout_sec | 30 |
max_crawl_pages | 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. |