API JSON in CSV#

Converti un file JSON in CSV con una singola richiesta a POST /v1/convert/json-to-csv. L'input deve essere un array JSON di oggetti; le intestazioni di colonna derivano dalle chiavi del primo oggetto e le righe sono delimitate da virgole con quoting QUOTE_MINIMAL. Per default la risposta è costituita dai byte CSV grezzi; imposta direct_download=false per ricevere invece metadati con un URL di download presigned.


Endpoint#

POST /v1/convert/json-to-csv

Content-Type: multipart/form-data

Input accettato: file .json (codificati in UTF-8)

Formato di output: .csv (text/csv)


Autenticazione#

Richiede una chiave API privata oppure un token JWT ottenuto da una chiave pubblica.

X-API-Key: sk_your_private_key

Oppure:

Authorization: Bearer <jwt_token>

Parametri della richiesta#

Parametro Tipo Obbligatorio Default Descrizione
file file -- Il file .json da convertire. Deve contenere un array JSON di oggetti. Codificato in UTF-8.
output_filename string No Nome del file di input Nome file di output personalizzato. L'estensione .csv viene aggiunta automaticamente.
direct_download boolean No true Con true, restituisce i byte CSV grezzi. Con false, restituisce metadati con un URL di download presigned.

Regole di conversione#

[
  {"name": "Alice", "age": 30, "city": "London"},
  {"name": "Bob", "age": 25, "city": "Paris"}
]

Diventa:

name,age,city
Alice,30,London
Bob,25,Paris
  • L'input deve essere un array JSON di oggetti (lista di dizionari)
  • Le intestazioni di colonna derivano solo dalle chiavi del primo oggetto
  • Il delimitatore è la virgola (non configurabile)
  • Il quoting segue QUOTE_MINIMAL -- i valori che contengono virgole, virgolette o newline vengono racchiusi tra virgolette
  • Gli oggetti o array annidati nei valori vengono serializzati come rappresentazione stringa (non appiattiti)
Importante: Se gli oggetti dell'array hanno chiavi diverse, le chiavi aggiuntive negli oggetti successivi vengono scartate silenziosamente. Le chiavi mancanti producono valori vuoti. Per risultati ottimali, assicurati che tutti gli oggetti abbiano lo stesso insieme di chiavi.

Risposta#

Download diretto (direct_download=true, default)#

HTTP 200 OK
Content-Type: text/csv
Content-Disposition: inline; filename="data_20260405_123456789.csv"

Risposta con metadati (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
}

Esempi di codice#

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)

Risposte di errore#

Stato Condizione
400 Bad Request Il file non è un file .json
400 Bad Request Contenuto JSON non valido
400 Bad Request Il JSON deve essere un array di oggetti per la conversione in CSV
400 Bad Request L'array JSON è vuoto
400 Bad Request L'array JSON deve contenere oggetti (dizionari)
401 Unauthorized Chiave API / token JWT mancante o non valido
402 Payment Required Quota mensile di ops esaurita
413 Payload Too Large Il file supera la dimensione massima del piano

Limiti#

Limite Valore
Dimensione massima del file Dipende dal piano (Founding: 5 MB)
Codifica di input Solo UTF-8
Struttura di input Solo array di oggetti
Conversioni mensili Dipende dal piano

Domande frequenti#

Come converto un array JSON in CSV con una API REST?#

Invia una richiesta POST multipart/form-data a /v1/convert/json-to-csv con un file .json contenente un array di oggetti nel campo file, autenticandoti con un header X-API-Key o un token JWT Authorization: Bearer. La risposta è CSV delimitato da virgole.

Cosa succede se gli oggetti JSON hanno chiavi diverse?#

Le intestazioni di colonna derivano solo dalle chiavi del primo oggetto. Le chiavi aggiuntive negli oggetti successivi vengono scartate silenziosamente e le chiavi mancanti producono valori vuoti, quindi per risultati ottimali assicurati che tutti gli oggetti condividano lo stesso insieme di chiavi.

Gli oggetti JSON annidati vengono appiattiti in colonne CSV?#

No. Gli oggetti o array annidati nei valori vengono serializzati come rappresentazione stringa invece di essere appiattiti in colonne separate.

Posso cambiare il delimitatore CSV?#

No. Il delimitatore è sempre la virgola e non è configurabile. Il quoting segue QUOTE_MINIMAL, quindi i valori che contengono virgole, virgolette o newline vengono racchiusi tra virgolette automaticamente.

Perché l'API JSON in CSV restituisce 400 Bad Request?#

Un 400 viene restituito quando il file non è .json, il JSON non è valido, il JSON non è un array di oggetti o l'array è vuoto. I file troppo grandi restituiscono 413 Payload Too Large.