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