CSV (Comma-Separated Values, значения, разделённые запятыми) — это самый универсальный текстовый формат табличных данных, почти все табличные программы (Excel, Google Sheets, Numbers, WPS) поддерживают импорт и экспорт CSV, он также является одним из наиболее часто используемых форматов для обмена данными, массового импорта и экспорта. JSON (JavaScript Object Notation) — наиболее часто используемый формат обмена данными в веб-API и современном программировании. Преобразование CSV в JSON — очень частая потребность в разработке: полученный от продуктовых/операционных специалистов CSV, экспортированный из Excel, нужно преобразовать в JSON для использования в API, экспортированный из базы данных CSV нужно преобразовать в JSON для mock-данных, при миграции данных CSV нужно импортировать в документные базы данных вроде MongoDB… удобный инструмент преобразования экономит много времени на ручную сборку JSON.
CSV кажется простым — поля разделены запятыми, строки — переносами строк — но на самом деле имеет много подводных камней: что делать, если в поле есть запятая? Что делать, если в поле есть перенос строки? Как экранировать кавычки? CSV, экспортированные в разных странах, также могут использовать точку с запятой в качестве разделителя (в Европе из-за использования запятой как десятичного разделителя), табуляцию в качестве разделителя (формат TSV). Без правильной обработки этих проблем распарсенные данные будут неверными. Этот инструмент реализует парсер, следуя стандарту CSV RFC 4180, корректно обрабатывает граничные случаи вроде заключения в кавычки, экранирования двойных кавычек, запятых/переносов строк внутри полей, это не простой string.split(','), результаты точные и надёжные.
Автоматическое распознавание разделителей — очень практичная функция. Многие разработчики, получив CSV-файл, первым делом пытаются использовать split(','), но европейский Excel по умолчанию экспортирует с разделителем-точкой с запятой (;), прямой split по запятой превратит всю строку в одно поле; TSV-файлы разделены табуляцией, split по запятой совершенно неверен. Инструмент подсчитывает частоту появления запятых, точек с запятой, табуляций в каждой строке, автоматически определяет наиболее вероятный разделитель и унифицирует, вам не нужно заботиться об источнике файла, просто вставляйте.
Умное исправление ошибок — ключевая функция, отличающая от простых онлайн-инструментов. В реальной работе полученные CSV часто нестандартные: в некоторых строках неверное количество столбцов (обрезалось при копировании, вставке, посередине появилась лишняя запятая), некоторые кавычки не закрыты (проблема экспорта), где-то смешаны разделители, прямой парсинг завершится ошибкой или даст неверный результат. Инструмент при возникновении этих проблем не отказывается напрямую от преобразования, а: ① перечисляет все проблемные номера строк и причины ошибок; ② предоставляет кнопку исправления в один клик для автоматического дополнения пустых столбцов/обрезания/дополнения кавычек; ③ даже при наличии предупреждений старается вывести пригодный результат JSON, весь файл не завершает преобразование из-за ошибки в одной строке.
Два режима вывода: красивая печать/сжатие соответствуют разным сценариям использования: при отладке разработки, чтении и просмотре используйте режим красивой печати — отступ в 2 пробела, чёткая иерархия, с первого взгляда видна структура объектов; при использовании в продакшене, в ответах API, в конфигурационных файлах используйте сжатый режим — убираются все пробелы и переносы строк, объём меньше, передача быстрее. Переключатель мгновенно перерисовывает, не нужно переконвертировать.
Почему важна чисто локальная обработка? CSV-файлы часто содержат реальные бизнес-данные, информацию о клиентах, неопубликованные продуктовые данные и другой конфиденциальный контент, при загрузке на сторонние серверы преобразования есть риск утечки данных. Вся логика парсинга и преобразования в этом инструменте выполняется локально в браузере на JavaScript, файл обрабатывается только в памяти вашего компьютера, нет даже сетевых запросов, работает при отключении интернета, фундаментально решает проблему безопасности данных. Локальная обработка также имеет преимущество в скорости — файлы размером в несколько МБ преобразуются мгновенно, не нужно ждать загрузки и скачивания.
Перетаскиваемые разделяемые панели и локальная история — детали, оптимизированные для частого использования: при работе с широкими таблицами можно расширить область ввода, при фокусе на результате расширить область вывода; не до конца обработанный в прошлый раз CSV при следующем открытии автоматически восстанавливается, не нужно снова искать файл в почте/чатах для копирования и вставки. Прямой переход к инструменту форматирования JSON в один клик дополнительно учитывает реальный рабочий процесс — после преобразования JSON обычно нужно форматировать, проверять, сжимать, прямой переход без повторного копирования, вставки и открытия новой страницы.
Следует отметить: ① Все значения CSV единообразно преобразуются в строковый тип, это осознанный дизайн — CSV не имеет информации о типах, автоматическое преобразование в числа/булевы значения может привести к ошибкам (например, почтовый индекс 00123, номера удостоверений и т.д. теряют ведущие нули), при необходимости преобразования типов обработайте их в коде; ② В настоящее время поддерживается только одностороннее преобразование CSV → JSON, для JSON → CSV используйте соответствующий инструмент на этом сайте; ③ Для очень больших файлов (>10 МБ, миллионы строк) рекомендуется использовать инструменты командной строки (например, csvtojson, jq), этот инструмент позиционируется для сценариев отладки разработки, в пределах нескольких десятков тысяч строк в повседневном использовании работает полностью плавно.