#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 определенным образом.