Конвертер CSV в JSON онлайн — CSV в массив объектов
CSV в JSON (автоопределение разделителя, заголовки, типы, вложенность)
Работает в браузере · файлы никуда не загружаются
Что это за инструмент
CSV — привычный способ выгрузить таблицу из электронной таблицы или базы данных, а веб-коду обычно нужен JSON. Инструмент преобразует вставленный CSV в JSON. По умолчанию получается массив объектов с ключами из строки заголовков, а без заголовка — массив массивов.
Как пользоваться
- Вставьте весь CSV в поле ввода или откройте файл кнопкой Открыть CSV-файл (файлы корейского Excel в EUC-KR открываются как есть).
- Оставьте автоопределение разделителя или выберите его сами. Если первая строка — данные, выключите опцию заголовка.
- Включите преобразование типов, если числа и true/false нужны как типы JSON.
- Включите восстановление вложенности, чтобы столбец вроде
address.cityснова стал{"address":{"city":...}}. Это удобно для CSV, полученного конвертером JSON в CSV. - Выберите отступ и скопируйте результат.
Как это работает
-
Разбор по 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». Текст, который уже испорчен после копирования из другой программы, вставкой не исправить — открывайте файл.
Что происходит со строками, где не то число полей?
Они все равно преобразуются, а номера таких строк выводятся в списке «Строки для проверки». Для недостающих ячеек ключи в результат не попадают, лишние ячейки отбрасываются.