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

Конвертируйте CSV в JSON онлайн — бесплатно, мгновенно и конфиденциально. Ваш файл обрабатывается прямо в браузере и никогда не загружается на сервер.

Разделитель CSV
Результат

Сконвертированные файлы и предпросмотр появятся здесь.

Готово. Выберите файл таблицы для конвертации.

Как работает конвертация

  • Первая строка считывается как заголовок — ее ячейки становятся именами полей JSON, а каждая последующая строка преобразуется в отдельный объект.
  • Выберите разделитель, соответствующий вашим данным — запятую, точку с запятой или табуляцию.

Конвертация таблицы выполняется прямо в вашем браузере. Данные не отправляются на серверы BroBroGo.

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

Как конвертировать CSV в JSON?

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

Файлы какого размера можно конвертировать?

До 8 МБ, 10 000 строк и 200 столбцов на один файл. Более крупные наборы данных перед обработкой рекомендуется разбить на части.

Преобразование CSV в JSON: как это работает и почему не всё так просто

Инструмент на этой странице принимает CSV-файл — строки текста, разделённые запятыми, точкой с запятой или табуляцией, — и превращает его в JSON. Чаще всего результатом становится массив объектов, в котором каждая строка исходной таблицы — один объект, а каждый столбец — ключ. Вы перетаскиваете файл в окно браузера или выбираете его с диска, устанавливаете формат вывода «JSON», при необходимости указываете разделитель (запятая, точка с запятой или табуляция), смотрите предпросмотр и скачиваете готовый.json.

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

Что делает эту страницу уникальной: три главных отличия от других преобразователей

Инструмент не пытается «угадать» типы данных или достроить иерархию. Его отличия от соседних страниц (JSON→CSV, Excel→JSON) строятся на трёх принципиальных особенностях:

  1. Отсутствие типов в исходнике, строки в результате. CSV хранит всё как плоский текст. Числа (цены, количества), даты, ведущие нули (почтовые индексы, коды продуктов) — всё это приходит в инструмент как строки. В выходном JSON каждое поле остаётся строкой. Никакого автоматического преобразования «1999» в число 1999 не происходит. Если вам нужны числа или даты, их придётся обрабатывать вручную после скачивания.

  2. Нет вложенности. CSV — строго прямоугольная таблица. Из неё можно получить только плоский массив плоских объектов. Иерархический JSON (объекты внутри объектов) из CSV без дополнительных правил не создашь. Обратное преобразование — JSON в CSV — должно уплощать вложенные поля, и там эти правила необходимы. Здесь же их нет, и это честное ограничение формата.

  3. Разделитель критичен. Вы обязаны указать, используется ли в вашем файле запятая, точка с запятой или табуляция. На соседних страницах (JSON→CSV, Excel→JSON) такого выбора нет — формат сам подсказывает структуру. Это дополнительный шаг, который может стать источником ошибки, если файл выглядит как CSV, но на самом деле использует нестандартный разделитель.

Кроме того, встроенные запятые и переносы строк в CSV хрупки. Правила экранирования кавычек соблюдаются далеко не всеми программами, и именно здесь возникает большинство сбоев при парсинге.

Структура данных: из плоской таблицы в массив объектов

Любая CSV-таблица — это набор строк, где каждая строка содержит одинаковое количество полей, разделённых одним и тем же символом. Первая строка часто (но не обязательно) содержит заголовки. Инструмент на этой странице читает первую строку как заголовки — они становятся ключами объектов. Каждая последующая строка — один объект JSON.

Пример. Исходный CSV (разделитель — запятая):

name,price,quantity
Widget A,12.50,100
Widget B,7.99,50

Результат JSON:

[
  {"name": "Widget A", "price": "12.50", "quantity": "100"},
  {"name": "Widget B", "price": "7.99", "quantity": "50"}
]

Обратите внимание: price — строка "12.50", а не число. quantity — строка "100", не число. Это прямое следствие того, что в CSV нет типов.

Если в CSV нет строк с данными, инструмент сообщит: «Этот файл не содержит строк таблицы». Если количество полей в разных строках не совпадает — например, из-за неэкранированной запятой внутри поля — парсинг может завершиться ошибкой. В таких случаях вы увидите: «Этот CSV не удалось разобрать».

Типы данных: почему всё остаётся строками и что с этим делать

CSV не знает о числах, логических значениях или null. Единственный способ что-то записать — это текст. Поэтому даже если в ячейке написано true, 42 или 2024-01-15, в JSON это попадёт как строка "true", "42", "2024-01-15". Никакого автоматического приведения.

Для разработчика, который ожидает получить в JSON числа для расчётов на стороне JavaScript, это может стать неприятным сюрпризом. Придётся после загрузки JSON преобразовывать поля price и quantity в числовой тип вручную, например через parseFloat() или Number().

Ведущие нули — ещё один важный момент. Почтовый индекс 00123 в CSV записан как "00123". При загрузке JSON в среду, которая автоматически определяет типы (например, Excel при импорте CSV или некоторые парсеры JSON), эти нули могут быть отброшены, и вы получите 123. Инструмент этого не делает — он сохраняет строку как есть. Ответственность за дальнейшее обращение с данными лежит на вас. Если вы будете передавать JSON в API или базу данных, убедитесь, что она ожидает строку, или добавьте кавычки вручную.

Пустые ячейки в CSV — это пустые строки. В JSON они превращаются в строку "". Если вам нужно представление null для отсутствующего значения, это придётся делать постобработкой.

Выбор разделителя и тонкости синтаксиса CSV

Пользователь должен явно указать разделитель: запятую, точку с запятой или табуляцию. Почему это важно?

  • Запятая — стандарт для CSV (Comma-Separated Values). Однако многие программы (например, локализованные версии Excel) экспортируют CSV с точкой с запятой, если разделителем десятичных дробей является запятая. Тогда файл с запятой внутри чисел 12,5 будет испорчен, если парсер ожидает запятую как разделитель полей.
  • Точка с запятой — типичный выбор для регионов, где десятичная запятая.
  • Табуляция — встречается в TSV-файлах (Tab-Separated Values). Инструмент поддерживает и этот вариант.

Если разделитель выбран неверно, парсинг, скорее всего, выдаст ошибку или создаст неправильную структуру, потому что все поля склеются в одно.

Дополнительная проблема — встроенные запятые и переносы строк внутри значений, заключённых в кавычки. Правила RFC 4180 предписывают: если поле содержит разделитель, кавычку или перевод строки, оно должно быть заключено в двойные кавычки, а внутренние кавычки удваиваются. На практике многие программы генерируют CSV, не соблюдая эти правила. Например, поле "Smith, John" правильно, а Smith, John без кавычек — проблема. Инструмент пытается разобрать такие файлы, но при серьёзных нарушениях выдаёт сообщение «Этот CSV не удалось разобрать». Переносы строк внутри кавычек сохраняются как \n в строках JSON.

Ошибки и граничные случаи: что может пойти не так

Инструмент явно сообщает о проблемах. Вот полный список сообщений об ошибках, которые вы можете увидеть:

  • «Этот CSV не удалось разобрать» — когда парсинг не удаётся из-за проблем с кавычками, несоответствия разделителей или неодинакового числа полей в строках.
  • «Этот файл не содержит строк таблицы» — файл пуст или содержит только заголовки, без строк с данными.
  • «В этой таблице более ‹максимум› строк» или «…более ‹максимум› столбцов» — превышено ограничение на размер таблицы (конкретное число не указано в факт-листе, но оно есть в коде инструмента).
  • «Этот файл слишком велик. Используйте файл меньше ‹максимум›» — превышено ограничение на размер файла.
  • «Сначала выберите один файл» — если пользователь нажал кнопку конвертации, не выбрав файл.
  • «Выберите файл в формате CSV, JSON или XLSX» — если загружен файл неподдерживаемого типа. Инструмент умеет определять входной формат автоматически, но если вход не CSV, а JSON или XLSX, он сначала интерпретирует эти файлы как таблицы, но основная заявленная функция — CSV→JSON.
  • «Это преобразование занимает слишком много времени. Попробуйте файл поменьше» — при длительной обработке.

Все эти сообщения — не просто технические детали, а часть интерфейса, помогающая пользователю быстро понять, что пошло не так.

Приватность: конфиденциальность при обработке на стороне клиента

Конвертация выполняется целиком в браузере пользователя. Никакие данные не отправляются на сервер. Это означает, что вы можете смело преобразовывать файлы, содержащие персональные данные, адреса клиентов, номера телефонов или любую другую чувствительную информацию. Никто, кроме вас, не имеет доступа к этим данным. Если ваш коллега использует Excel, а вы предпочитаете JSON, достаточно просто передать ему готовый JSON-файл — никаких промежуточных загрузок на чужие серверы.

Однако этот же подход означает, что инструмент не может обрабатывать файлы, размер которых превышает возможности браузера. Максимальный размер файла ограничен, и при превышении вы увидите соответствующее сообщение. Для очень больших наборов данных (сотни мегабайт) придётся использовать серверные решения.

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

Почему числа в JSON остались строками?

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

Сохраняются ли ведущие нули, как в почтовых индексах?

Да. Поскольку каждое поле остаётся строкой, ведущие нули не теряются. Но если вы затем загрузите JSON в среду, которая автоматически приводит строки к числам (например, некоторые парсеры JavaScript без явного указания), нули могут исчезнуть. Будьте внимательны.

Можно ли из CSV получить вложенный JSON, например {"address": {"city": "..."}}?

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

Что делать, если CSV не парсится (сообщение об ошибке)?

Проверьте разделитель: возможно, ваш файл использует точку с запятой или табуляцию, а вы выбрали запятую. Также убедитесь, что все кавычки в полях парные и что нет незакрытых кавычек или переносов строк внутри полей без соответствующего экранирования. Попробуйте открыть CSV в текстовом редакторе и визуально проверить структуру.

Есть ли ограничение на количество строк или размер файла?

Да. Если строк или столбцов больше, чем позволяет инструмент, появится сообщение «В этой таблице более …». Если файл слишком велик — сообщение «Этот файл слишком велик…». Конкретные лимиты могут зависеть от версии инструмента, но факт их наличия важен.

Какой разделитель выбрать — запятая, точка с запятой или табуляция?

Посмотрите, что стоит между полями в вашем файле. Если вы видите запятые — выбирайте «Comma». Если точки с запятой — «Semicolon». Если символ табуляции (обычно невидимый, но заметен как пробел шире обычного) — «Tab». Если не уверены, откройте файл в блокноте или программе с показом непечатаемых символов.