Что делает инструмент
CSV (Comma-Separated Values) — текстовый табличный формат, экспортируется из Excel / Google Sheets / 1С. JSON — формат для программного использования, импортируется в БД, REST API, JS-приложения. Конвертация CSV → JSON — частая задача аналитики и интеграции.
Через библиотеку PapaParse — самый надёжный JS-парсер CSV (RFC 4180 совместим, поддерживает escape, quoted strings, разные разделители). Работает в браузере, файлы не уходят на сервер.
Сценарии использования
- Импорт из 1С / Excel в JS-приложение. Бухгалтер выгрузил в CSV — программист импортирует в JSON для frontend.
- Загрузка в MongoDB. mongoimport принимает JSON. CSV нужно конвертировать.
- API-запросы. POST
application/jsonв большинство API. CSV — пред-формат, нужно конвертировать. - Прототипирование. Получили CSV-датасет — превращаете в JSON для быстрого тестирования в JS console.
- Конвертация для маркетплейсов. Wildberries / Ozon принимают разные форматы — иногда нужен JSON, иногда XML.
- Перенос в Postgres JSONB. Конвертируете CSV → JSON-array → INSERT через psql.
Особенности парсинга
- Разделитель в РФ Excel — точка с запятой. Когда в Excel ставите Russian locale, экспорт в CSV использует ; (потому что , — десятичный знак). Если открыли «странный» CSV — проверьте этот режим.
- Кодировка. Excel в РФ часто экспортирует в Windows-1251. Файл может «съесть» кириллицу. PapaParse использует UTF-8 — пересохраните CSV в UTF-8 (Save As → CSV UTF-8) перед использованием.
- BOM в начале файла. Иногда CSV начинается с BOM (3 невидимых байта). PapaParse его игнорирует. Excel при открытии CSV без BOM показывает кракозябры — для совместимости с Excel наш JSON → CSV добавляет BOM при скачивании.
- Числа с дробной частью. «42.5» → 42.5 (число). Но «42,5» (русская запись) — не парсится как число, останется строкой «42,5». Решение: заменить запятую на точку до парсинга.
- PapaParse — fastest CSV parser in JavaScript. Matt Holt. github.com/mholt/PapaParse. 2024.
- RFC 4180 — Common Format for CSV Files. IETF. rfc-editor.org/rfc/rfc4180. 2005.
