Форматирование числовых и строковых значений в CSV с помощью vanilla JS

#javascript #string #csv #nginx #formatting

#javascript #строка #csv #nginx #форматирование

Вопрос:

Задана строка CSV, подобная этой:

 23,an unquoted string,"a string with a comma, in the string", "another string", 33.0000000001, 2.0
  

Используя NJS (NGINX Javascript — это означает, что я не могу полагаться на пакеты NPM, а только на подмножество ванильного javascript, но я согласен с копированием и вставкой кода из пакетов, если это необходимо), я хотел бы получить строковое представление массива JSON, которое выглядит следующим образом:

 [23, "an unquoted string", "a string with a comma, in the string", "another string", 33.0000000001, 2.0]
  

Я не смог использовать JSON.parse, поскольку он не может обрабатывать строки без кавычек. Похоже, что все чаще мне придется вручную разбирать CSV, делая что-то вроде:

Выполняйте итерации по строке CSV, пока я не наткнусь на запятую без кавычек, попробуйте разобрать значение как значение с плавающей точкой или целое число или иным образом заключить его в кавычки.

В конечном итоге код станет довольно сложным, и хуже того: ему придется работать с тоннами CSV-данных. Большие строки, много строк. Много МБ строк каждую секунду.

Есть ли более простой и качественный способ завершить обработку моего CSV, чтобы придать ему нужную мне форму?

Спасибо.

Комментарии:

1. Быстрый поиск в Google по запросу «npm csv parser» выдает некоторые результаты.

2. Упс, отредактировано, чтобы упомянуть, что я использую NJS (NGINX javascript).

3. Также: в отличие от большинства анализаторов CSV, я не хочу сопоставлять заголовки со значениями столбцов, просто отформатируйте текст CSV определенным образом.