Что такое преобразование CSV в JSON?
CSV (Comma-Separated Values, RFC 4180) — плоский, табличный текстовый формат; JSON (JavaScript Object Notation, RFC 8259) — текстовый формат с древовидной структурой для представления данных. Преобразование CSV в JSON превращает удобную для таблиц сетку в удобный для API массив объектов — по одному объекту на строку, где строка заголовков задаёт ключи — без ручного переноса данных.
Как работает преобразование CSV в JSON?
Каждое преобразование выполняется локально в вашем браузере. Основные шаги:
- Вы вставляете CSV в поле ввода и нажимаете ПРЕОБРАЗОВАТЬ; инструмент разбирает текст и выдаёт массив JSON-объектов в поле вывода.
- Посимвольный конечный автомат (FIELD_START → IN_UNQUOTED_FIELD или IN_QUOTED_FIELD) проходит ввод, корректно интерпретирует экранирование
"", распознаёт\r\nи\nкак завершители строк и формирует двумерный массив строк как промежуточное представление. - Если первая строка помечена как заголовок, её ячейки становятся ключами объектов; в противном случае инструмент генерирует синтетические ключи
field0,field1, … чтобы каждая строка по-прежнему отображалась в полный объект. - Разделитель (запятая, точка с запятой, табуляция, вертикальная черта или авто-определение) и приведение типов (числа / булевы /
null) — всё настраивается. При включённом приведении30становится числом 30, аtrue— булевым значением; при выключенном каждая ячейка остаётся строкой. - Результат записывается в текстовое поле только для чтения как текст в формате
JSON.stringify, а ссылка для скачивания создаётBlobс MIME-типомapplication/json;charset=utf-8, чтобы вы могли сохранить файл одним кликом.
Зачем преобразовывать CSV в JSON этим инструментом?
- Конфиденциальность: каждый этап разбора и преобразования происходит в вашем браузере. Данные никогда не попадают на наши серверы.
- Корректность: парсер CSV — это настоящий конечный автомат. Поля с запятыми в кавычках (
"Bob, Jr."), встроенными переводами строк и экранированными кавычками разбираются в одну ячейку, а не в три, — наивные реализации сsplit(',')здесь ошибаются. - Корректность типов: опциональное приведение типов превращает числовые и булевы ячейки в настоящие JSON-числа и булевы значения, так что полученный массив готов к использованию сразу, без дополнительной очистки.
- Гибкость: выбирайте любой разделитель для нестандартных CSV-диалектов, указывайте, является ли первая строка заголовком, и включайте или отключайте приведение типов там, где каждое значение должно оставаться строкой.
Каковы распространённые применения преобразования CSV в JSON?
Разбор CSV в JSON встречается во множестве задач работы с данными и инструментария:
- Моки API: вставка CSV-фикстуры, выгруженной из таблицы, и её преобразование в массив JSON, который локальный сервер вернёт как ответ заглушенной конечной точки.
- Импорт данных: превращение таблиц (контакты, склад, результаты опросов) в массив JSON, по которому приложение или скрипт может итерироваться без зависимости от CSV-парсера.
- Редактирование конфигов: нетехнические рецензенты правят настройки или флаги функций ячейка за ячейкой в таблице, после чего сохранённый CSV конвертируется в JSON, который реально загружает приложение.
Как выглядит пример преобразования CSV в JSON?
Если вставить name,age в первую строку, Alice,30 во вторую и "Bob, Jr.",25 в третью, затем нажать ПРЕОБРАЗОВАТЬ с разделителем-запятой, первой строкой как ключами и включённым приведением типов, получится [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] — запятая в кавычках в "Bob, Jr." остаётся внутри одного поля, а возраст становится настоящим JSON-числом.
Работает ли этот конвертер CSV в JSON полностью в моём браузере?
Да. Каждый этап разбора и преобразования выполняется локально как JavaScript внутри вкладки браузера. Инструмент вообще не вызывает fetch, XMLHttpRequest или navigator.sendBeacon — ваши CSV-данные никогда не попадают на наши серверы, в сторонний конвертер или в аналитический конвейер. Инструмент также работает офлайн после загрузки страницы, поскольку это статический бандл HTML/CSS/JS без зависимостей от внешнего API.
Каков максимальный размер ввода, который выдержит этот конвертер?
Конвертер буферизует весь ввод в памяти и работает синхронно в главном потоке, поэтому практические пределы зависят от вашего устройства. Ввод до примерно 10 МБ CSV (около 100 000 типичных строк) преобразуется без заметной паузы на современном ноутбуке. За этим порогом интерфейс может подвиснуть, пока работает парсер. Потоковое преобразование с использованием Web Worker и парсера по чанкам — запланированное продолжение; пока что очень большие наборы данных лучше разбивать перед вставкой.
Как парсер CSV в JSON обрабатывает запятые в кавычках и встроенные переводы строк?
Парсер — это посимвольный конечный автомат с тремя состояниями (FIELD_START, IN_UNQUOTED_FIELD, IN_QUOTED_FIELD), а не наивный split(','). Поле, обёрнутое в двойные кавычки, может содержать разделитель, CR, LF или литеральную двойную кавычку, экранированную как "", без разрыва границ поля. Поэтому "Bob, Jr.",25 разбирается на два поля, а не на три, а многострочное описание, заключённое в кавычки через несколько строк, разбирается в одну ячейку.
Как числа, булевы значения и пустые ячейки типизируются в JSON-выводе?
Типизация управляется переключателем Приведение типов. При включённом приведении вкл (по умолчанию) ячейка, похожая на число, становится JSON-числом, true/false — булевыми значениями, а литерал null — JSON null; всё остальное остаётся строкой. При выключённом приведении выкл каждое значение сохраняется как строка независимо от содержимого — полезно, когда ведущие нули, номера телефонов или идентификаторы должны сохраниться неизменными. Отсутствующие конечные ячейки в короткой строке выводятся как пустые строки, чтобы каждый объект имел полный набор ключей.
Какие разделители поддерживает сторона CSV?
Поддерживаются четыре явных разделителя: запятая (,, по умолчанию для RFC 4180), точка с запятой (;, распространена в европейских локалях), табуляция (\t, диалект TSV) и вертикальная черта (|). Можно также выбрать Авто-определение, которое подсчитывает вхождения каждого кандидата в первых 4 КБ ввода вне кавычек и выбирает наиболее частый, дающий стабильное число колонок в первых пяти строках.
Этот конвертер CSV в JSON разбирает данные настоящим конечным автоматом и выдаёт чистый, готовый к использованию JSON, который можно вставить прямо в вызов API, скрипт или код-ревью — без отправки единого байта.