ToolActToolAct

Конвертер CSV в JSON

Загрузите файл CSV или вставьте данные для конвертации в формат JSON

Перетащите файл CSV сюда или нажмите для выбора

Что такое CSV в JSON?

CSV в JSON — это онлайн-инструмент конвертации форматов данных, который преобразует данные CSV (значения, разделённые запятыми) в формат JSON (обозначение объектов JavaScript).

CSV — это распространённый табличный формат данных, широко используемый в электронных таблицах и экспорте баз данных. JSON — самый популярный формат обмена данными в современных веб-приложениях, известный своей чёткой структурой и простотой разбора.

С помощью этого инструмента вы можете быстро конвертировать данные CSV в массивы или объекты JSON для использования в программировании и обработке данных.

CSV to JSON выглядит простым, но delimiter, quotes, переносы строк внутри полей, пустые значения и encoding определяют надежность результата. Заголовки столбцов обычно становятся JSON keys, поэтому дубликаты и неясные имена лучше очистить заранее. Для APIs, imports, analytics и migrations нужно дополнительно проверить типы, number formats, dates, null rules и строки с неправильным числом колонок.

Как использовать

Как использовать

  1. Вставьте или введите CSV-данные в левую панель ввода
  2. Выберите нужный разделитель (по умолчанию — запятая)
  3. Выберите, использовать ли первую строку в качестве имён полей
  4. На правой панели автоматически появится результат в формате JSON

Особенности разбора CSV

  • Перед использованием JSON-вывода проверьте разделитель, обработку кавычек и настройку строки заголовка.
  • Большие CSV-файлы могут содержать пустые строки, запятые или переносы строк внутри ячеек в кавычках — после конвертации просмотрите несколько строк.

Применение

Конвертация загруженных файлов CSV или TSV в массивы JSONПеретащите или выберите файл .csv, .tsv или .txt, укажите разделитель — запятую, табуляцию, точку с запятой или вертикальную черту — и решите, должна ли первая строка стать ключами объектов или вывод остаться массивами. Файл читается в браузере через FileReader, разбирается локально потоковым токенизатором и никогда не загружается на сервер, поэтому клиентские или внутренние экспорты не покидают устройство.
Предпросмотр количества строк и полей перед использованием JSONИспользуйте отображаемое имя файла, количество строк, полей и подсвеченный JSON-вывод, чтобы обнаружить ошибки разделителя, отсутствующие заголовки или пустые строки до копирования в моки или скрипты. Это хорошо работает как контролируемый промежуточный шаг: вставьте вывод в реальное назначение и убедитесь, что принимающая система интерпретирует его одинаково.
Обработка простого CSV в кавычках без выхода из браузераПарсер поддерживает поля в кавычках, экранированные двойные кавычки и четыре распространённых разделителя, что подходит для небольших экспортов и тестовых данных. Файлы обрабатываются целиком в памяти браузера, поэтому даже конфиденциальные HR-выгрузки, финансовые данные или staging-снимки можно преобразовать без отправки данных по сети.
Сохранение информации о типах при отправке JSON в типизированный APIПосле конвертации просмотрите вывод на наличие полей, которые должны быть числами, булевыми, датами или null вместо строк, затем постобработайте массив перед отправкой в REST или GraphQL эндпоинты. CSV не имеет собственных типов, поэтому быстрый визуальный просмотр первых нескольких строк обычно достаточен для обнаружения ID в кавычках и кодов с ведущими нулями.
Обнаружение некорректных строк перед пушем в мокиИспользуйте счётчик строк/полей и ошибки разбора для выявления строк, не соответствующих ожидаемому числу колонок, затем исправьте исходный CSV, а не допускайте попадание бракованных строк в мок-JSON. Панель предпросмотра останавливается на первой несоответствующей строке, чтобы вы могли исправить разделитель или добавить недостающую кавычку перед повторным запуском.

Технический принцип

Разбор CSV следует грамматике IETF RFC 4180: каждая запись завершается CRLF (некоторые диалекты принимают LF или CR), каждая запись содержит поля, разделённые разделителем (запятая в RFC, но TSV, точка с запятой и вертикальная черта — широко распространённые варианты), и любое поле, содержащее разделитель, CR, LF или двойную кавычку, ДОЛЖНО быть обёрнуто в двойные кавычки с экранированием внутренних двойных кавычек удвоением (Hello "world" становится "Hello ""world"""). Парсер на этой странице — это конечный автомат с четырьмя состояниями: field_start, in_unquoted, in_quoted, after_quote — и обрабатывает ввод за один проход O(n) по потоку символов, поэтому CSV на 10 МБ со 100 000 строк обрабатывается значительно меньше секунды на типовом ноутбуке без промежуточного выделения массива токенов на каждую строку. Кодировка требует явной обработки: UTF-8 BOM (EF BB BF) в начале файла удаляется перед разбором, иначе первое имя заголовка незаметно начнётся с невидимого кодового пункта U+FEFF, и проверки равенства в downstream JSON.parse будут провалены. Экспорт Excel на Windows по-прежнему выдаёт CRLF и часто UTF-8 с BOM, тогда как macOS Numbers и большинство утилит Unix по умолчанию используют LF без BOM. Европейские таблицы часто экспортируют файлы с разделителем точка с запятой, поскольку запятая является десятичным разделителем во многих локалях (49,90 EUR, а не 49.90), поэтому селектор разделителя по умолчанию — запятая, но табуляция, точка с запятой и вертикальная черта представлены как варианты первого уровня. Переключатель «первая строка — заголовок» меняет форму вывода с массива объектов (ключи заголовков -> строковые значения) на массив массивов, соответствующий двум распространённым паттернам загрузки для downstream-кода. Значения полей выводятся как строки, а не как выведенные типы — CSV не имеет схемы, поэтому 01234 (ID с ведущими нулями), 1e10 (строка, похожая на номер телефона, которую JSON.parse приведёт к числу) и 2024-13-45 (некорректная дата) остаются дословно. Это намеренно: типизированный API может применить zod, Joi или собственный слой приведения с явными правилами, но он не может восстановить ведущий ноль, который конвертер уже удалил. Вывод генерируется через JSON.stringify(rows, null, 2) и отображается через подсветку синтаксиса; исходный CSV считывается с помощью FileReader.readAsText() из Blob, никогда не загружается на сервер, поэтому экспорт HR, финансовые журналы и списки клиентов можно преобразовать, не покидая сессию браузера.

  • Грамматика RFC 4180: поля с разделителем/CR/LF/" должны быть в кавычках; внутренние кавычки удваиваются как "".
  • Однопроходный конечный автомат O(n) с состояниями: field_start, in_unquoted, in_quoted, after_quote.
  • UTF-8 BOM (EF BB BF / U+FEFF) удаляется в начале файла для чистоты ключей заголовков.
  • Европейские таблицы часто используют ; как разделитель, поскольку , — десятичный знак в настройках локали.
  • Первая строка как заголовок переключает вывод между Array<Record<string,string>> и Array<Array<string>>.
  • Все значения полей остаются строками; ID с ведущими нулями вроде 01234 сохраняются только благодаря отсутствию вывода типов.
  • FileReader.readAsText() обрабатывает Blob локально; ничего не загружается — безопасно для экспортов HR/финансов/staging.

Примеры

Базовый CSV со строкой заголовка -> JSON-массив объектов

CSV вход:
name,age,city
Alice,28,New York
Bob,35,London
Carol,42,Tokyo

JSON выход:
[
  { "name": "Alice", "age": "28", "city": "New York" },
  { "name": "Bob",   "age": "35", "city": "London"   },
  { "name": "Carol", "age": "42", "city": "Tokyo"    }
]

Поля в кавычках с запятыми внутри

CSV вход:
id,product,description
1,"Notebook, A5","Hard cover, 200 pages"
2,Pen,"Black ink, 0.5mm"

JSON выход:
[
  { "id": "1", "product": "Notebook, A5", "description": "Hard cover, 200 pages" },
  { "id": "2", "product": "Pen",          "description": "Black ink, 0.5mm" }
]

TSV (с разделителями-табуляциями) без заголовка

TSV вход (разделитель = Tab, заголовок отключён):
101	Alice	98.5
102	Bob	87.0
103	Carol	92.3

JSON выход:
[
  ["101", "Alice", "98.5"],
  ["102", "Bob",   "87.0"],
  ["103", "Carol", "92.3"]
]

Разделитель — точка с запятой (экспорт европейских таблиц)

CSV вход (разделитель = ;):
product;price_eur;stock
Keyboard;49,90;120
Mouse;19,90;345

JSON выход:
[
  { "product": "Keyboard", "price_eur": "49,90", "stock": "120" },
  { "product": "Mouse",    "price_eur": "19,90", "stock": "345" }
]
Примечание: числа остаются строками — приводите типы в коде потребителя.

Часто задаваемые вопросы

Какие варианты CSV поддерживаются?

Стандартный CSV по RFC 4180: разделитель — запятая, поля заключаются в двойные кавычки, экранирование — удвоением двойных кавычек. Файлы с табуляцией (TSV) и точкой с запятой работают через смену разделителя. Различные переводы строк (LF/CRLF/CR) обрабатываются автоматически.

Как обрабатываются заголовки?

Если включить «первая строка — заголовок», парсер использует каждую ячейку заголовка как ключ JSON для соответствующей колонки и выдаёт массив объектов. С отключёнными заголовками парсер выдаёт массив массивов. Пустые ячейки заголовков получают числовой ключ-заглушку.

Как определяются типы?

По умолчанию всё — строки. Включите «автотип», чтобы попытаться распознать числа, булевы значения (true/false) и null. Числа с ведущими нулями (00123, 0042) остаются строками, чтобы не потерять префикс — используйте это для ID и почтовых индексов.

Что если в поле есть запятая или перевод строки?

Заключите поле в двойные кавычки: "Smith, John" или "line one\nline two". Двойные кавычки внутри удваиваются: "He said ""hi""". Парсер обрабатывает все эти случаи; если строка ломается, причина обычно — несбалансированные кавычки.

Где выполняется конвертация — локально или на сервере?

Локально. Парсинг выполняется в вашем браузере на JavaScript. Вставленный CSV не покидает страницу. Большие файлы могут замедлить браузер; если вставка превышает десятки МБ, разбейте её перед обработкой.

Сохраняется ли порядок колонок?

Да — каждая строка становится JSON-объектом, порядок ключей которого совпадает с порядком заголовков CSV, и JSON.stringify в современных движках сохраняет порядок вставки. Если ваш downstream-инструмент читает JSON без сохранения порядка вставки — это его ограничение.

Как обрабатывать даты?

Даты остаются строками. Автотипизация не разбирает произвольные форматы дат, потому что не существует однозначного стандарта (1/2/2024 — это 2 января в США и 1 февраля в Европе). Перед импортом приводите даты к ISO 8601 (YYYY-MM-DD), если на выходе нужны нативные объекты Date.

Связанные инструменты

Инструмент форматирования JSON

Онлайн-инструмент для форматирования JSON с подсветкой синтаксиса, обнаружением ошибок и сжатием. Одним нажатием форматируйте JSON данные, быстро находите ошибки формата.

Конвертер Excel в JSON

Онлайн конвертер Excel в JSON. Поддерживает форматы .xlsx и .xls с выбором нескольких листов. Конвертируйте данные таблицы в формат JSON локально.

Конвертер CSV в SQL

Онлайн-инструмент для конвертации CSV в SQL с поддержкой пользовательских имён таблиц, разделителей и стилей кавычек. Быстрая конвертация данных CSV в SQL INSERT-выражения для удобного импорта в базу данных.

JSON в TypeScript

Бесплатный онлайн-конвертер JSON в интерфейсы TypeScript: автоматически генерирует определения типов с поддержкой вложенных объектов, массивов и union-типов.

Инструмент форматирования XML

Онлайн-инструмент для форматирования XML с автоматическим отступом, валидацией синтаксиса и сжатием. Настраиваемый отступ, быстрое обнаружение ошибок формата XML.

Инструмент форматирования SQL

Бесплатный онлайн-форматировщик SQL: красивое форматирование, минификация, смена регистра ключевых слов и подсветка синтаксиса для читаемых запросов.