Convertir JSON en CSV
Cet outil prend un JSON — souvent la réponse d’une API — et le transforme en fichier CSV que vous ouvrez dans un tableur. Les clés deviennent des colonnes, chaque objet une ligne. Idéal quand vous recevez des données au format développeur mais devez les remettre à quelqu’un qui travaille sous Excel.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Du JSON au tableau
Un tableau d’objets JSON se prête naturellement au CSV : l’outil relève toutes les clés présentes, en fait la ligne d’en-têtes, puis remplit une ligne par objet. Les objets qui n’ont pas toutes les clés laissent simplement une cellule vide. Le résultat s’ouvre d’un double-clic dans Excel, LibreOffice Calc ou Google Sheets, sans manipulation supplémentaire.
Les objets imbriqués
Quand une valeur est elle-même un objet, l’outil aplatit la structure avec une notation à points, par exemple adresse.ville et adresse.code_postal deviennent deux colonnes distinctes. Vous gardez ainsi l’information complète dans un format plat, sans perdre le détail des sous-objets et sans avoir à restructurer votre JSON à la main auparavant.
Accents et séparateur pour un tableur français
Pour que les accents s’affichent correctement et que les colonnes se séparent bien à l’ouverture, le fichier est encodé en UTF-8 avec le marqueur attendu par Excel. Vous évitez ainsi le grand classique du prénom « Élodie » qui devient illisible, un écueil fréquent quand on ouvre un CSV mal encodé dans un Excel configuré en français.
Local et sans envoi
La transformation a lieu sur cette page, dans votre navigateur. Aucune donnée ne part vers un serveur : c’est appréciable lorsque le JSON contient des informations clients ou financières. Pour un traitement récurrent, la conversion existe aussi en appel programmable à $0.002 la requête, mais l’usage manuel reste entièrement gratuit.
Cas d’usage
Transmettre des données à un comptable
Julien Lefèvre récupère les paiements d’une API en JSON et doit les remettre en CSV à son comptable, qui travaille exclusivement sous Excel. La conversion évite toute ressaisie.
Analyser une réponse d’API
Nadia Benali veut trier et filtrer une réponse JSON volumineuse. En CSV, elle applique des filtres et des tris directement dans son tableur habituel.
Archiver un export applicatif
Atelier Garnier SARL conserve ses commandes du mois dans un CSV lisible par tous, plutôt que dans un JSON que seuls les développeurs savent ouvrir.
Questions fréquentes
Quel séparateur est utilisé dans le fichier obtenu ?
Le fichier est produit de façon à s’ouvrir proprement dans un tableur configuré en français. Si votre logiciel attend un autre séparateur, vous pouvez le réajuster à l’import.
Pourquoi les accents s’affichent-ils correctement ?
Parce que le CSV est encodé en UTF-8 avec le marqueur reconnu par Excel. C’est ce qui évite les caractères déformés à l’ouverture.
Comment sont traités les objets imbriqués ?
Ils sont aplatis en colonnes avec une notation à points, de sorte que rien de l’information ne se perd dans la mise à plat.
Le fichier JSON est-il transmis à un serveur ?
Non, tout est traité localement dans le navigateur ; aucune donnée n’est envoyée ni conservée.
Combien coûte l’outil ?
Il est gratuit sur cette page. Seul l’usage automatisé par appel programmable est facturé, à $0.002 par conversion.
Quelle est la taille maximale acceptée ?
Jusqu’à 25 Mo par fichier.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"text": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.json_to_csv",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |