OutilsConvertisseur JSON ↔ CSV
🔧

Convertisseur JSON ↔ CSV

🚧 En construction

Utilitaires

Description

Convertissez vos données entre formats JSON et CSV.

Conversion bidirectionnelle entre JSON et CSV

Convertissez facilement vos données entre les formats JSON et CSV. Cet outil gère les structures complexes, les tableaux imbriqués et offre des options de personnalisation pour s'adapter à tous vos besoins de traitement de données.

📊 JSON vers CSV :
  • • Aplatissement des objets imbriqués
  • • Gestion des tableaux
  • • Sélection des colonnes
  • • Préservation des types de données
🔄 CSV vers JSON :
  • • Détection automatique des types
  • • Création d'objets structurés
  • • Gestion des en-têtes personnalisés
  • • Support de différents délimiteurs

Fonctionnalités principales

📊
JSON vers CSV

Transformez vos objets JSON complexes en fichiers CSV lisibles par Excel ou Google Sheets.

  • • Aplatissement automatique des objets
  • • Préfixe pour les propriétés imbriquées
  • • Gestion des valeurs nulles et vides
🔄
CSV vers JSON

Convertissez vos tableurs en objets JSON structurés pour l'intégration API ou le traitement programmatique.

  • • Détection des types automatique
  • • Création d'arrays ou d'objets
  • • Support des caractères spéciaux
⚙️
Configuration avancée

Personnalisez le délimiteur, l'encodage, la gestion des guillemets et bien d'autres paramètres.

  • • Délimiteurs personnalisés (,;|)
  • • Encodage UTF-8, UTF-16, ASCII
  • • Options de guillemets et d'échappement
🔍
Prévisualisation

Prévisualisez le résultat avant téléchargement avec coloration syntaxique et validation des données.

  • • Aperçu en temps réel
  • • Validation des formats
  • • Statistiques des données

🔧 Options de conversion détaillées

🎯 JSON vers CSV :
  • Aplatissement : obj.prop.subprop → obj_prop_subprop
  • Séparateur : Personnaliser le délimiteur de niveau
  • Tableaux : Joindre par virgule ou créer colonnes
  • Filtres : Exclure/inclure des propriétés spécifiques
  • Valeurs nulles : Remplacer par valeur par défaut
🔄 CSV vers JSON :
  • Type de sortie : Array d'objets ou objet unique
  • Clé primaire : Utiliser une colonne comme identifiant
  • Types de données : Auto-détection ou forçage manuel
  • Groupement : Créer des objets imbriqués par préfixe
  • En-têtes : Première ligne ou noms personnalisés

Exemples de transformation

📊 JSON → CSV
Entrée JSON :
[
  {
    "user": {
      "name": "Alice",
      "age": 30
    },
    "orders": [1, 2, 3]
  }
]
Sortie CSV :
user_name,user_age,orders
Alice,30,"1,2,3"
🔄 CSV → JSON
Entrée CSV :
name,age,city
Alice,30,Paris
Bob,25,Lyon
Sortie JSON :
[
  {"name":"Alice","age":30,"city":"Paris"},
  {"name":"Bob","age":25,"city":"Lyon"}
]

💻 Exemple d'implémentation (JavaScript)

// JSON vers CSV
function jsonToCsv(jsonArray, options = {}) {
  if (!Array.isArray(jsonArray) || jsonArray.length === 0) {
    return '';
  }

  // Aplatir les objets imbriqués
  const flattenObject = (obj, prefix = '') => {
    const flattened = {};
    for (const key in obj) {
      const value = obj[key];
      const newKey = prefix ? `${prefix}${options.separator || '_'}${key}` : key;
      
      if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
        Object.assign(flattened, flattenObject(value, newKey));
      } else if (Array.isArray(value)) {
        flattened[newKey] = value.join(options.arrayJoin || ',');
      } else {
        flattened[newKey] = value;
      }
    }
    return flattened;
  };

  // Aplatir tous les objets
  const flattenedArray = jsonArray.map(item => flattenObject(item));
  
  // Extraire toutes les clés
  const allKeys = [...new Set(flattenedArray.flatMap(Object.keys))];
  
  // Créer l'en-tête
  const csvHeader = allKeys.join(',');
  
  // Créer les lignes
  const csvRows = flattenedArray.map(row => 
    allKeys.map(key => {
      const value = row[key] ?? '';
      // Échapper les guillemets et encapsuler si nécessaire
      return typeof value === 'string' && (value.includes(',') || value.includes('"')) 
        ? `"${value.replace(/"/g, '""')}"`
        : value;
    }).join(',')
  );

  return [csvHeader, ...csvRows].join('\n');
}

// CSV vers JSON
function csvToJson(csvString, options = {}) {
  const lines = csvString.trim().split('\n');
  const delimiter = options.delimiter || ',';
  
  // Extraire l'en-tête
  const headers = lines[0].split(delimiter).map(h => h.trim());
  
  // Traiter chaque ligne
  return lines.slice(1).map(line => {
    const values = line.split(delimiter);
    const obj = {};
    
    headers.forEach((header, index) => {
      let value = values[index]?.trim() || '';
      
      // Nettoyer les guillemets
      if (value.startsWith('"') && value.endsWith('"')) {
        value = value.slice(1, -1).replace(/""/g, '"');
      }
      
      // Auto-détection du type si activée
      if (options.autoDetectTypes !== false) {
        if (value === '') {
          value = null;
        } else if (!isNaN(value) && !isNaN(parseFloat(value))) {
          value = parseFloat(value);
        } else if (value.toLowerCase() === 'true') {
          value = true;
        } else if (value.toLowerCase() === 'false') {
          value = false;
        }
      }
      
      obj[header] = value;
    });
    
    return obj;
  });
}

// Exemples d'utilisation
const jsonData = [
  { user: { name: "Alice", age: 30 }, tags: ["dev", "js"] },
  { user: { name: "Bob", age: 25 }, tags: ["design"] }
];

const csv = jsonToCsv(jsonData);
console.log(csv);
// user_name,user_age,tags
// Alice,30,"dev,js"
// Bob,25,design

const backToJson = csvToJson(csv);
console.log(backToJson);

Cas d'usage courants

🔄 Migration de données
  • • Imports/exports entre systèmes
  • • Synchronisation d'applications
  • • Transformation d'APIs
  • • Nettoyage de bases de données
📊 Analyse de données
  • • Préparation pour Excel/Sheets
  • • Données pour Power BI/Tableau
  • • Reports automatisés
  • • Statistiques et métriques
⚙️ Développement
  • • Configuration d'applications
  • • Tests et fixtures
  • • Documentation technique
  • • Scripts d'automatisation
📈 Business
  • • Gestion de contacts
  • • Catalogues produits
  • • Inventaires et stocks
  • • Comptabilité simplifiée

🛠️ Outils complémentaires et alternatives

En ligne :
  • ConvertCSV - Interface simple
  • JSON-CSV - Options avancées
  • Mr. Data Converter - Multi-formats
Lignes de commande :
  • jq - Processeur JSON
  • csvkit - Outils CSV Python
  • Miller - Multi-formats
Logiciels :
  • OpenRefine - Nettoyage données
  • Postman - Tests API
  • Excel/Sheets - Import natif

💡 Bonnes pratiques et conseils

🎯 Optimisation des performances :
  • Traitez les gros fichiers par chunks pour éviter les blocages
  • Utilisez des Web Workers pour les conversions lourdes
  • Prévisualisez un échantillon avant conversion complète
  • Compressez les fichiers de sortie volumineux
🔒 Sécurité et qualité :
  • Validez la structure JSON avant conversion
  • Échappez correctement les caractères spéciaux
  • Gérez les encodages de caractères (UTF-8)
  • Testez avec des jeux de données représentatifs

Informations

CatégorieUtilitaires
Statut🚧 En construction
Gratuit✓ Oui
Inscription✗ Non requise

Une suggestion ? 💡

Vous avez une idée d'outil qui pourrait être utile ? N'hésitez pas à me contacter !