Преобразование CSV в JSON в TypeScript: методы и примеры

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

Метод 1: использование внешних библиотек
Вы можете использовать внешние библиотеки в своем проекте TypeScript, чтобы упростить процесс преобразования CSV в JSON. Одной из популярных библиотек является csvtojson. Сначала установите библиотеку, выполнив следующую команду в каталоге вашего проекта:

npm install csvtojson

Затем вы можете использовать библиотеку в своем коде TypeScript следующим образом:

import * as csvtojson from 'csvtojson';
async function convertCsvToJson(csvFilePath: string): Promise<any[]> {
  const jsonArray = await csvtojson().fromFile(csvFilePath);
  return jsonArray;
}
// Usage
convertCsvToJson('path/to/your/csv/file.csv')
  .then(jsonArray => {
    console.log(jsonArray); // JSON data
  })
  .catch(err => {
    console.error(err);
  });

Метод 2: преобразование вручную
Если вы предпочитаете не использовать внешние библиотеки, вы можете вручную реализовать преобразование CSV в JSON в TypeScript. Вот пример простой функции преобразования:

import * as fs from 'fs';
function convertCsvToJson(csvFilePath: string): any[] {
  const csvData = fs.readFileSync(csvFilePath, 'utf-8');
  const rows = csvData.split('\n');
  const headers = rows[0].split(',');
  const jsonData: any[] = [];
  for (let i = 1; i < rows.length; i++) {
    const currentRow = rows[i].split(',');
    const jsonRow: any = {};
    for (let j = 0; j < headers.length; j++) {
      jsonRow[headers[j]] = currentRow[j];
    }
    jsonData.push(jsonRow);
  }
  return jsonData;
}
// Usage
const jsonArray = convertCsvToJson('path/to/your/csv/file.csv');
console.log(jsonArray); // JSON data