JSON in CSV API#
Konvertieren Sie eine JSON-Datei mit einem einzigen Request an POST /v1/convert/json-to-csv in CSV. Die Eingabe muss ein JSON-Array von Objekten sein; die Spaltenüberschriften werden aus den Keys des ersten Objekts abgeleitet, und die Zeilen sind kommagetrennt mit QUOTE_MINIMAL-Quoting. Standardmäßig besteht die Antwort aus rohen CSV-Bytes; setzen Sie direct_download=false, um stattdessen Metadaten mit einer Presigned-Download-URL zu erhalten.
Endpunkt#
POST /v1/convert/json-to-csv
Content-Type: multipart/form-data
Akzeptierte Eingabe: .json-Dateien (UTF-8-kodiert)
Ausgabeformat: .csv (text/csv)
Authentifizierung#
Erfordert entweder einen privaten API-Key oder ein von einem Public Key ausgestelltes JWT-Token.
X-API-Key: sk_your_private_key
Oder:
Authorization: Bearer <jwt_token>
Request-Parameter#
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
file |
file | Ja | -- | Die zu konvertierende .json-Datei. Muss ein JSON-Array von Objekten enthalten. UTF-8-kodiert. |
output_filename |
string |
Nein | Eingabedateiname | Eigener Ausgabedateiname. Die Endung .csv wird automatisch angehängt. |
direct_download |
boolean |
Nein | true |
Bei true werden rohe CSV-Bytes zurückgegeben. Bei false Metadaten mit einer Presigned-Download-URL. |
Konvertierungsregeln#
[
{"name": "Alice", "age": 30, "city": "London"},
{"name": "Bob", "age": 25, "city": "Paris"}
]
Wird zu:
name,age,city
Alice,30,London
Bob,25,Paris
- Die Eingabe muss ein JSON-Array von Objekten sein (Liste von Dictionaries)
- Spaltenüberschriften werden ausschließlich aus den Keys des ersten Objekts abgeleitet
- Trennzeichen ist das Komma (nicht konfigurierbar)
- Quoting folgt
QUOTE_MINIMAL-- Werte mit Kommas, Anführungszeichen oder Zeilenumbrüchen werden in Anführungszeichen gesetzt - Verschachtelte Objekte oder Arrays in Werten werden als ihre String-Repräsentation serialisiert (nicht abgeflacht)
Antwort#
Direkter Download (direct_download=true, Standard)#
HTTP 200 OK
Content-Type: text/csv
Content-Disposition: inline; filename="data_20260405_123456789.csv"
Metadaten-Antwort (direct_download=false)#
{
"presigned_url": "https://spaces.example.com/...",
"object_key": "env/files/{project_id}/json-to-csv/data_20260405_123456789.csv",
"filename": "data_20260405_123456789.csv",
"file_size": 1234,
"conversion_time_seconds": 0.03
}
Codebeispiele#
Python#
import requests
with open("data.json", "rb") as f:
response = requests.post(
"https://api.enconvert.com/v1/convert/json-to-csv",
headers={"X-API-Key": "sk_your_private_key"},
files={"file": ("data.json", f, "application/json")}
)
with open("data.csv", "wb") as out:
out.write(response.content)
Node.js#
const form = new FormData();
form.append("file", fs.createReadStream("data.json"));
const response = await fetch("https://api.enconvert.com/v1/convert/json-to-csv", {
method: "POST",
headers: { "X-API-Key": "sk_your_private_key" },
body: form
});
const csv = await response.text();
PHP#
$ch = curl_init("https://api.enconvert.com/v1/convert/json-to-csv");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
CURLOPT_POSTFIELDS => ["file" => new CURLFile("data.json", "application/json")]
]);
$csv = curl_exec($ch);
curl_close($ch);
Go#
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "data.json")
file, _ := os.Open("data.json")
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/json-to-csv", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)
Fehlerantworten#
| Status | Bedingung |
|---|---|
400 Bad Request |
Datei ist keine .json-Datei |
400 Bad Request |
Ungültiger JSON-Inhalt |
400 Bad Request |
JSON muss für die CSV-Konvertierung ein Array von Objekten sein |
400 Bad Request |
JSON-Array ist leer |
400 Bad Request |
JSON-Array muss Objekte (Dictionaries) enthalten |
401 Unauthorized |
Fehlender oder ungültiger API-Key / JWT-Token |
402 Payment Required |
Monatliches Ops-Kontingent aufgebraucht |
413 Payload Too Large |
Datei überschreitet die maximale Dateigröße des Plans |
Limits#
| Limit | Wert |
|---|---|
| Maximale Dateigröße | Planabhängig (Founding: 5 MB) |
| Eingabekodierung | Nur UTF-8 |
| Eingabestruktur | Nur Array von Objekten |
| Monatliche Konvertierungen | Planabhängig |
Häufig gestellte Fragen#
Wie konvertiere ich ein JSON-Array in CSV über eine REST API?#
Senden Sie einen multipart/form-data-POST-Request an /v1/convert/json-to-csv mit einer .json-Datei, die ein Array von Objekten enthält, im Feld file, authentifiziert mit einem X-API-Key-Header oder einem JWT Authorization: Bearer-Token. Die Antwort ist kommagetrenntes CSV.
Was passiert, wenn die JSON-Objekte unterschiedliche Keys haben?#
Die Spaltenüberschriften stammen ausschließlich aus den Keys des ersten Objekts. Zusätzliche Keys späterer Objekte werden stillschweigend verworfen, und fehlende Keys erzeugen leere Werte. Stellen Sie daher für beste Ergebnisse sicher, dass alle Objekte denselben Key-Satz teilen.
Werden verschachtelte JSON-Objekte in CSV-Spalten abgeflacht?#
Nein. Verschachtelte Objekte oder Arrays in Werten werden als ihre String-Repräsentation serialisiert und nicht in separate Spalten abgeflacht.
Kann ich das CSV-Trennzeichen ändern?#
Nein. Das Trennzeichen ist immer ein Komma und nicht konfigurierbar. Quoting folgt QUOTE_MINIMAL, sodass Werte mit Kommas, Anführungszeichen oder Zeilenumbrüchen automatisch in Anführungszeichen gesetzt werden.
Warum gibt die JSON-zu-CSV-API 400 Bad Request zurück?#
Ein 400 wird zurückgegeben, wenn die Datei keine .json-Datei ist, das JSON ungültig ist, das JSON kein Array von Objekten ist oder das Array leer ist. Zu große Dateien geben 413 Payload Too Large zurück.