Convertir CSV en JSON
Collez un CSV avec en-tête et obtenez un enregistrement par ligne : dans Ada, "Compiler, pioneer", true, la virgule entre guillemets reste dans la même valeur. Une ligne qui compte trop ou trop peu de colonnes est signalée par son numéro. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
L’outil comprend les virgules protégées, les guillemets échappés, les fins de ligne Windows ou Unix et les retours à la ligne dans les valeurs citées. Chaque ligne de données doit compter exactement autant de colonnes que l’en-tête, sinon la conversion s’arrête avec une erreur précise.
Préparez un texte CSV doté d’un en-tête fiable
Commencez par une ligne d’en-tête donnant à chaque colonne un nom unique et non vide. Les valeurs restent des chaînes, car le CSV ne possède pas de système de types fiable. Une valeur qui ressemble à un nombre peut être un code de compte dont les zéros initiaux sont importants, et une date peut changer de sens selon le pays.
La conservation du texte évite les suppositions destructrices et laisse l’application destinataire appliquer son propre schéma. Le convertisseur accepte les fins de ligne Unix et Windows et retire une marque d’ordre des octets placée au début par certains tableurs. Les guillemets CSV habituels sont pris en charge.
Entourez une valeur de guillemets doubles si elle contient une virgule ou un retour à la ligne, et doublez tout guillemet littéral. Les espaces sont conservés.
Comprenez le contrôle strict du nombre de colonnes
La conversion impose volontairement une structure stricte. Après avoir analysé l’en-tête, elle compte ses colonnes et exige le même nombre dans chaque enregistrement suivant. Une dernière valeur absente doit tout de même être représentée par un champ vide, avec la virgule qui l’introduit.
De même, une virgule inattendue crée une colonne supplémentaire, sauf si elle se trouve dans un champ correctement cité. Lorsqu’un enregistrement ne correspond pas, l’opération indique le numéro de ligne CSV à partir de un, le nombre de colonnes trouvé et celui attendu. Cette règle évite un défaut fréquent et dangereux des convertisseurs permissifs : les valeurs se décalent sous de mauvais intitulés ou des champs manquants disparaissent sans avertissement.
Les valeurs vides sont autorisées et deviennent des chaînes vides, contrairement aux lignes incohérentes. L’analyseur refuse aussi un champ cité non terminé, un guillemet au milieu d’un champ non cité et tout caractère placé après un guillemet fermant. Les exports défectueux sont ainsi signalés avant l’enregistrement de propriétés erronées.
Utiliser les enregistrements convertis sans mauvaise surprise
L’algorithme étant déterministe, un même texte CSV produit toujours la même sortie, sans requête réseau, valeur aléatoire ni horodatage. Considérez le résultat comme une conversion structurelle fidèle, et non comme un nettoyage des données. L’outil ne déduit ni nombres, ni booléens, ni dates, ni valeurs nulles ; il ne renomme pas les en-têtes et ne répare pas les lignes.
Cette séparation est utile : la conversion associe les valeurs aux en-têtes, puis un schéma décide de leur sens. Si la source utilise un autre séparateur, normalisez-la avec des virgules.
Cas d’usage
Contrôler une chaîne d’export
Refusez le CSV généré dès qu’un enregistrement contient moins ou plus de champs que l’en-tête déclaré.
Questions fréquentes
Un champ peut-il contenir une virgule ou un retour à la ligne ?
Oui. Entourez-le de guillemets doubles. Dans un champ cité, écrivez deux fois tout guillemet littéral.
Que se passe-t-il si une ligne compte mal ses colonnes ?
La conversion échoue avec une erreur d’entrée qui identifie la ligne et indique les nombres réel et attendu.
Les cellules vides sont-elles acceptées ?
Oui. Une cellule vide devient une chaîne vide si la ligne conserve le bon nombre de colonnes.
Pourquoi les nombres et les dates restent-ils du texte ?
Parce qu'un CSV ne transporte pas de types fiables : un nombre peut être un code de compte dont les zéros initiaux comptent, et une date se lit différemment selon les régions. Votre application choisit ensuite le type de chaque valeur.
Puis-je convertir un fichier séparé par des points-virgules ?
Pas directement : le convertisseur attend des valeurs séparées par des virgules, remplacez donc d'abord le séparateur. Les valeurs qui contiennent une virgule doivent alors être placées entre guillemets doubles.
Outils associés
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/web/csv-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"name,role,active\nAda,Engineer,true\nGrace,Admiral,false"}'const res = await fetch("https://api.kit.forhosting.com/web/csv-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "name,role,active\nAda,Engineer,true\nGrace,Admiral,false"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/csv-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "name,role,active\nAda,Engineer,true\nGrace,Admiral,false"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/csv-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"name,role,active\\nAda,Engineer,true\\nGrace,Admiral,false"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"name,role,active\nAda,Engineer,true\nGrace,Admiral,false"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/csv-to-json", 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": "name,role,active\nAda,Engineer,true\nGrace,Admiral,false"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.csv_to_json",
"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
timeout_sec | 30 |
max_crawl_pages | 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. |
Notes techniques
Convertissez un CSV en JSON lorsque vous avez besoin d’un objet prévisible pour chaque ligne, sans accepter silencieusement une entrée incorrecte. Collez un texte CSV muni d’un en-tête : chaque intitulé devient une propriété JSON.
Préparez un texte CSV doté d’un en-tête fiable
Ces noms deviennent les clés de chaque objet JSON : un en-tête comme name,email,status produit donc des objets comportant exactement ces trois clés. Un document limité à l’en-tête est valide et renvoie un tableau JSON vide.
Exploitez la sortie JSON en toute sécurité
Le résultat est un tableau JSON conservant l’ordre des lignes, avec un objet simple par enregistrement. Vous pouvez l’envoyer à une API, le vérifier dans un test, l’enregistrer comme document JSON ou le transmettre à une validation appliquant les types propres à votre domaine. Pour l’automatisation, l’API coûte $0.002 par requête ; la conversion interactive peut s’exécuter dans le navigateur.
Cas d'intégration
Préparer les données d’une API
Transformez un export de tableur en objets aux clés cohérentes avant d’appliquer le schéma particulier de l’API.
Créer des jeux d’essai déterministes
Convertissez de petits exemples CSV en tableaux JSON stables et faciles à comparer dans les tests automatisés.
Questions techniques
Les nombres et booléens deviennent-ils des types JSON natifs ?
Non. Chaque cellule CSV reste une chaîne afin de ne pas modifier les codes, les zéros initiaux et les valeurs ambiguës.
Combien coûte la conversion par API ?
L’API coûte $0.002 par requête. La même conversion déterministe peut être lancée de façon interactive dans le navigateur.