Блог
Русский

Конвертер CSV в JSON онлайн — CSV в массив объектов

CSV в JSON (автоопределение разделителя, заголовки, типы, вложенность)

Работает в браузере · файлы никуда не загружаются

Что это за инструмент

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

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

  1. Вставьте весь CSV в поле ввода или откройте файл кнопкой Открыть CSV-файл (файлы корейского Excel в EUC-KR открываются как есть).
  2. Оставьте автоопределение разделителя или выберите его сами. Если первая строка — данные, выключите опцию заголовка.
  3. Включите преобразование типов, если числа и true/false нужны как типы JSON.
  4. Включите восстановление вложенности, чтобы столбец вроде address.city снова стал {"address":{"city":...}}. Это удобно для CSV, полученного конвертером JSON в CSV.
  5. Выберите отступ и скопируйте результат.

Как это работает

  • Разбор по RFC 4180. Разделители и переводы строк внутри двойных кавычек относятся к значению, две двойные кавычки читаются как одна. Полностью пустые строки пропускаются.

  • Преобразование типов касается только true и false (в нижнем регистре) и обычной десятичной записи вроде -12, 3.5 или 1e3. 007, +1, 1e999 и целые числа больше 9007199254740991 остаются строками. Пустая ячейка — пустая строка.

  • Повторяющиеся имена заголовков превращаются в name, name_2, name_3, чтобы ни один столбец не пропал.

  • Восстановление вложенности собирает заголовки с точками в объекты и разворачивает ячейки, которые начинаются с [ или { и являются корректным JSON, в массивы и объекты. Если ключ с точкой конфликтует с уже существующим значением, он остается буквальным ключом.

  • UTF-8 BOM в начале ввода удаляется.

  • Ограничения обратного преобразования: пустые ячейки становятся пустыми строками, а не null, а включенное преобразование типов превращает строки вроде "123" в число 123, поэтому цепочка JSON → CSV → JSON может не воспроизвести оригинал в точности.

Примеры

Ввод:

name,age,address.city
Иван,30,Moscow

Результат с включенными преобразованием типов и восстановлением вложенности:

[{"name": "Иван", "age": 30, "address": {"city": "Moscow"}}]

Частые вопросы

Нужно ли выбирать разделитель?

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

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

По умолчанию все значения остаются строками. Чтобы это изменить, включите преобразование чисел и true/false. Даже тогда значения с ведущим нулем вроде 007, +1 и целые числа больше 2^53 остаются строками, чтобы ничего не потерять.

Сохранится ли текст в CSV, сохраненном из Excel?

Откройте файл кнопкой **Открыть CSV-файл**. Если есть метка порядка байтов UTF-8 или UTF-16, кодировка берется по ней. Иначе файл читается как UTF-8, при неудаче — как EUC-KR (CP949), кодировка корейского Excel, а если и это не подходит — как Windows-1252 (западноевропейский Excel). Использованная кодировка показывается на странице. Кодировка Windows-1251 не определяется, поэтому CSV с кириллицей из Excel лучше сохранять как «CSV UTF-8». Текст, который уже испорчен после копирования из другой программы, вставкой не исправить — открывайте файл.

Что происходит со строками, где не то число полей?

Они все равно преобразуются, а номера таких строк выводятся в списке «Строки для проверки». Для недостающих ячеек ключи в результат не попадают, лишние ячейки отбрасываются.

Не нашли нужный инструмент?