Convertir JSON a CSV

JavaScriptJavaScriptBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, profundizaremos en el mundo de la programación de JavaScript y exploraremos el proceso de convertir datos JSON en formato CSV. A través de este laboratorio, aprenderá a usar métodos integrados como join(), map() y reduce() para convertir una matriz de objetos en una cadena que se pueda leer y manipular fácilmente en software de hojas de cálculo. Este laboratorio es ideal para aquellos que deseen comprender más profundamente la manipulación de datos 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{{"Convertir JSON a CSV"}} javascript/data_types -.-> lab-28457{{"Convertir JSON a CSV"}} javascript/arith_ops -.-> lab-28457{{"Convertir JSON a CSV"}} javascript/comp_ops -.-> lab-28457{{"Convertir JSON a CSV"}} javascript/array_methods -.-> lab-28457{{"Convertir JSON a CSV"}} javascript/higher_funcs -.-> lab-28457{{"Convertir JSON a CSV"}} javascript/destr_assign -.-> lab-28457{{"Convertir JSON a CSV"}} javascript/spread_rest -.-> lab-28457{{"Convertir JSON a CSV"}} javascript/template_lit -.-> lab-28457{{"Convertir JSON a CSV"}} end

Convertir JSON a CSV

Para convertir una matriz de objetos en una cadena de valores separados por comas (CSV) con columnas especificadas, use la siguiente función:

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");

Para usarlo, siga estos pasos:

  1. Abra la Terminal/SSH y escriba node para comenzar a practicar la codificación.
  2. Llame a la función JSONtoCSV con los siguientes argumentos:
    • arr: una matriz de objetos a convertir.
    • columns: una matriz de cadenas que especifican las columnas que se incluirán en la salida CSV.
    • delimiter: una cadena opcional que especifica el delimitador que se usará (el valor predeterminado es ',').
  3. La función devolverá una cadena CSV que contiene solo las columnas especificadas y los valores de los objetos.
  4. Si no se especifica un delimitador, se usará el delimitador predeterminado ','.
  5. Se proporcionan ejemplos de cómo usar la función en el bloque de código siguiente.
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"'

Resumen

¡Felicidades! Has completado el laboratorio de convertir JSON a CSV. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.