JavaScript:
Работа с CSV

Как это сделать:

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

const csv = `name, age, city
Alice, 30, New York
Bob, 22, Los Angeles`;

function csvToJson(csv) {
  const lines = csv.split("\n");
  const headers = lines[0].split(",");
  return lines.slice(1).map(line => {
    const data = line.split(",");
    return headers.reduce((obj, nextKey, index) => {
      obj[nextKey] = data[index];
      return obj;
    }, {});
  });
}

console.log(csvToJson(csv));
// Вывод: [{name: 'Alice', age: '30', city: 'New York'}, {name: 'Bob', age: '22', city: 'Los Angeles'}]

Генерирование CSV из JSON:

const jsonData = [
  { name: "Alice", age: 30, city: "New York" },
  { name: "Bob", age: 22, city: "Los Angeles" }
];

function jsonToCsv(json) {
  const headers = Object.keys(json[0]).join(",");
  const rows = json.map(obj =>
    Object.values(obj).join(",")
  ).join("\n");
  return `${headers}\n${rows}`;
}

console.log(jsonToCsv(jsonData));
// Вывод: name,age,city
//        Alice,30,New York
//        Bob,22,Los Angeles

Подробное погружение

CSV существует с ранних дней вычислительной техники - его легко обрабатывать машинам и понимать людям. Но он не идеален. Если ваши данные сложные или вложенные, JSON или XML могут подойти лучше. С точки зрения реализации, обработка CSV в JavaScript требовала обходных путей из-за отсутствия стандартной библиотеки для этого; однако сегодня множество библиотек, таких как PapaParse или csv-parser, упрощают эту задачу. Также, особые случаи, такие как символы новой строки внутри полей и кодирование символов, могут усложнить обработку CSV и требуют внимательного программирования.

Смотрите также