Conversion de JSON au format CSV

JavaScriptJavaScriptBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous plongerons dans le monde de la programmation JavaScript et explorerons le processus de conversion de données JSON au format CSV. Grâce à ce laboratoire, vous apprendrez à utiliser des méthodes intégrées telles que join(), map() et reduce() pour convertir un tableau d'objets en une chaîne de caractères qui peut être facilement lue et manipulée dans un logiciel de tableur. Ce laboratoire est parfait pour ceux qui souhaitent approfondir leur compréhension de la manipulation de données en JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") javascript/AdvancedConceptsGroup -.-> javascript/template_lit("Template Literals") subgraph Lab Skills javascript/variables -.-> lab-28457{{"Conversion de JSON au format CSV"}} javascript/data_types -.-> lab-28457{{"Conversion de JSON au format CSV"}} javascript/arith_ops -.-> lab-28457{{"Conversion de JSON au format CSV"}} javascript/comp_ops -.-> lab-28457{{"Conversion de JSON au format CSV"}} javascript/array_methods -.-> lab-28457{{"Conversion de JSON au format CSV"}} javascript/higher_funcs -.-> lab-28457{{"Conversion de JSON au format CSV"}} javascript/destr_assign -.-> lab-28457{{"Conversion de JSON au format CSV"}} javascript/spread_rest -.-> lab-28457{{"Conversion de JSON au format CSV"}} javascript/template_lit -.-> lab-28457{{"Conversion de JSON au format CSV"}} end

Conversion de JSON au format CSV

Pour convertir un tableau d'objets en une chaîne de caractères de valeurs séparées par des virgules (CSV) avec des colonnes spécifiées, utilisez la fonction suivante :

const JSONtoCSV = (arr, columns, delimiter = ",") =>
  [
    columns.join(delimiter),
    ...arr.map((obj) =>
      columns.reduce(
        (acc, key) =>
          `${acc}${!acc.length ? "" : delimiter}"${!obj[key] ? "" : obj[key]}"`,
        ""
      )
    )
  ].join("\n");

Pour l'utiliser, suivez ces étapes :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.
  2. Appelez la fonction JSONtoCSV avec les arguments suivants :
    • arr : un tableau d'objets à convertir.
    • columns : un tableau de chaînes de caractères qui spécifient les colonnes à inclure dans la sortie CSV.
    • delimiter : une chaîne de caractères optionnelle qui spécifie le délimiteur à utiliser (valeur par défaut est ',').
  3. La fonction retournera une chaîne de caractères CSV qui contient uniquement les colonnes spécifiées et les valeurs des objets.
  4. Si aucun délimiteur n'est spécifié, le délimiteur par défaut ',' sera utilisé.
  5. Des exemples d'utilisation de la fonction sont fournis dans le bloc de code ci-dessous.
JSONtoCSV(
  [{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
  ["a", "b"]
); // 'a,b\n"1","2"\n"3","4"\n"6",""\n"","7"'

JSONtoCSV(
  [{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
  ["a", "b"],
  ";"
); // 'a;b\n"1";"2"\n"3";"4"\n"6";""\n"";"7"'

Résumé

Félicitations ! Vous avez terminé le laboratoire de conversion de JSON au format CSV. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.