Преобразование JSON в CSV

Beginner

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

Введение

В этом практическом занятии мы углубимся в мир программирования на JavaScript и изучим процесс преобразования данных в формате JSON в формат CSV. В ходе этого практического занятия вы научитесь использовать встроенные методы, такие как join(), map() и reduce(), для преобразования массива объектов в строку, которую можно легко читать и обрабатывать в программном обеспечении для электронных таблиц. Это практическое занятие идеально подходит для тех, кто хочет глубже понять манипуляцию данными в JavaScript.

Преобразование JSON в CSV

Для преобразования массива объектов в строку значений, разделенных запятыми (CSV), с указанными столбцами, используйте следующую функцию:

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

Для использования этой функции следуйте шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Вызовите функцию JSONtoCSV с следующими аргументами:
    • arr: массив объектов, которые необходимо преобразовать.
    • columns: массив строк, которые определяют столбцы, которые должны быть включены в выходной CSV.
    • delimiter: необязательная строка, которая определяет разделитель, который будет использоваться (значение по умолчанию - ',').
  3. Функция вернет CSV-строку, которая содержит только указанные столбцы и значения объектов.
  4. Если разделитель не указан, будет использоваться разделитель по умолчанию ','.
  5. В нижнем кодовом блоке приведены примеры использования функции.
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"'

Резюме

Поздравляем! Вы завершили практическое занятие по преобразованию JSON в CSV. Вы можете практиковаться в других практических занятиях в LabEx, чтобы улучшить свои навыки.