
Когда я начал программировать на Javascript, я в основном предпочитал формат файла JSON, а не любой другой формат файла. Я подумал об использовании данных IPL и проанализировал их. Но данные, которые я получил, были в формате CSV. Хотя у нас есть пакет npm csv-parser, я подумал о написании собственного скрипта, который мог бы конвертировать файл CSV в файл JSON. Давайте узнаем об этом…
Прежде чем начать, вам нужно установить npm и node js на свой компьютер. Также вам может понадобиться набор данных CSV для преобразования в формат JSON. Я загрузил набор данных IPL ball by ball по ссылке ниже,
https://www.kaggle.com/patrickb1912/ipl-complete-dataset-20082020
Сначала давайте создадим папку и инициализируем пакет npm с помощью следующей команды:
npm init -y
После инициализации вам нужно открыть новый javascript и начать кодирование из Visual Studio или любой другой IDE, в зависимости от того, что вы предпочитаете.
Давайте поместим этот CSV-файл в подпапку проекта и переименуем его, как вам удобно,

Давайте импортируем пакет файловой системы, который необходим для выполнения операций с файлами, используя следующую команду:
const fs = require('fs')
Я собираюсь хранить все данные CSV в переменной, используя функцию readfilesync файловой системы,
//Storing the entire CSV file as a string in a variable
let jsonFile = fs.readFileSync("data/iplBallData.csv").toString()
Убедитесь, что вы добавили .toString() для преобразования всего набора данных в строку.
Поскольку файл CSV содержит двойные кавычки, мы постараемся удалить те, в которых есть функция .replace,
//As the file contains double quotes already, we are trying to remove them jsonFile = jsonFile.replace(/"/g,'');
Пришло время объявить пустой массив для хранения всего набора данных,
//Declaring an empty array to store values let myDataSet = [];
Теперь нам нужно сохранить каждую запись файла в переменной с помощью функции разделения,
//spliting each line with /n and /r and storing them in a variable
const lines = jsonFile.split('\r\n')
\r и \n имеют одинаковое свойство создания нового файла.
Пришло время получить заголовок таблицы и сохранить его в отдельной переменной,
//Getting the header of CSV file table
const heading = lines[0].split(',')
Lines[0] будет иметь первую строку записи, которая имеет заголовок таблицы
Давайте сделаем цикл для перебора каждой записи,
for (i=1;i<lines.length;i++)
Нам может понадобиться еще один цикл, чтобы присвоить каждому заголовку таблицы значение, подобное формату JSON. С обоими циклами наш код будет выглядеть следующим образом:
В приведенном выше фрагменте кода у нас есть пустой объект — singleData, который будет содержать одну запись. Как только в нем будет вся запись, она будет помещена в пустой массив с именем myDataSet.
У нас есть все данные в myDataSet, давайте теперь сохраним их в файле JSON с функцией файловой системы, как показано ниже:
Хорошо, наш полный код будет выглядеть следующим образом:
Попробуйте запустить этот код с помощью команды node, как показано ниже:
node csvToJson.js
Вот и все!! Вы сделали! Вы получите вывод, как показано ниже,

Удачного кодирования ;-)