CSV в JSON: как преобразовать? Онлайн-конвертер

💻 IT и кодОбновлено: 13 июля 2026 г.4 мин чтения
Нужно быстро перегнать CSV в JSON? Я покажу, как это сделать правильно — без потери типов данных, с обработкой кодировок и экранирования. В конце бонус: мой любимый онлайн-конвертер, который делает всё за секунду.
⚡ Коротко: главное
  • CSV-файлы не содержат информации о типах данных — все поля строки; JSON сохраняет числа и булевы значения правильно только при явном преобразовании.
  • Стандартный разделитель в CSV — запятая, но в русскоязычных файлах часто используется точка с запятой из-за десятичных запятых.
  • Онлайн-конвертер CSV в JSON обрабатывает файлы до 10 МБ, автоматически определяет разделитель и кодировку, и работает без загрузки на сервер (в браузере).
  • При конвертации сложных CSV (с переносами строк в полях) нужно использовать библиотеки (Papa Parse для JavaScript, csv модуль Python), иначе данные сломаются.
  • Обратная конвертация (JSON → CSV) теряет вложенность объектов — плоская таблица не может представить иерархию, кроме случаев массива однотипных объектов.

Самый простой способ: онлайн-конвертер

Не хочется писать код? Просто перетащите файл в CSV в JSON на нашем сайте. Он определит разделитель (запятая, точка с запятой, табуляция), кодировку (UTF-8, windows-1251) и покажет предпросмотр. Можно выбрать, превращать ли каждый объект в массив или в объект с ключом из первого столбца. Конвертер работает полностью на клиенте — данные не отправляются на сервер, безопасно.

Конвертация с помощью Python (без потери данных)

Если нужно встроить в процесс — csv и json модули Python сделают всё чисто. Вот рабочий пример:

import csv, json

with open('input.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f, delimiter=';')
    data = [row for row in reader]

with open('output.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

Подводные камни: CSV с кавычками (экранирование) DictReader обрабатывает правильно. Но если нужны типы — числа, даты — придётся парсить руками. Пример с преобразованием:

for row in data:
    row['age'] = int(row['age'])
    row['salary'] = float(row['salary'])

Конвертация на чистом JavaScript (браузер / Node.js)

Для веб-приложений используйте библиотеку Papa Parse — она парсит даже большие файлы без подвисаний. Вот полный пример для браузера:

<input type="file" id="csvFile" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js"></script>
<script>
document.getElementById('csvFile').addEventListener('change', function(e) {
    Papa.parse(e.target.files[0], {
        header: true,
        delimiter: detectDelim(e.target.files[0]), // можно автоматически
        complete: function(results) {
            console.log('JSON:', JSON.stringify(results.data));
        }
    });
});
</script>

Для Node.js установите papaparse через npm. Поддерживает потоки (stream) — обрабатывайте файлы гигабайтного размера. Если файл весит больше 10 МБ, лучше не грузить в память целиком.

Конвертация в командной строке (jq, csvkit, Miller)

csvkit (Python): csvjson input.csv > output.json. Ставится pip install csvkit. Автоматически определяет типы чисел.

Miller (mlr): mlr --csv cat input.csv | mlr --j2j put -j output.json. Быстро, работа с потоками.

jq (с плагином csv2json): jq -R -s -f csv2json.jq input.csv. Для точного контроля.

Пример использования jq для CSV с разделителем табуляция:

jq -R -s 'split("\n") | map(split("\t")) | .[0] as $headers | .[1:] | map([$headers, .] | transpose | map({(.[0]): .[1]}) | add)' input.tsv > output.json
Этапы конвертации CSV в JSON
  1. 1
    1. Определить формат CSV

    Разделитель, кодировка, наличие заголовков.

  2. 2
    2. Выбрать инструмент

    Онлайн, Python, JS, утилита CLI — под задачу.

  3. 3
    3. Преобразовать в JSON

    С учётом типов: числа, даты, булевы.

  4. 4
    4. Провалидировать результат

    Синтаксис JSON, соответствие исходных данных.

От файла до валидного JSON за 4 шага

Таблица сравнения инструментов

ИнструментПоддержка типовРазмер файлаСложность
Онлайн-конвертерАвто (строки/числа)до 10 MBНулевая
Python csv+jsonРучнаяБез ограниченийСредняя
Papa Parse (JS)Строки (ручная)Без ограничений (поток)Средняя
csvkitАвто (даты, числа)Без ограниченийНизкая
MillerАвтоБез ограниченийНизкая

Чек-лист: конвертация без ошибок

0 из 8

Подводные камни: кодировка, разделители, экранирование

  • Кодировка: Русские CSV часто в windows-1251. При конвертации в JSON обязательно перекодируйте в UTF-8, иначе получите кракозябры. Онлайн-конвертер делает это автоматически.
  • Разделитель: В России принят ; (точка с запятой), потому что запятая — десятичный разделитель (например, 3,14). Но бывает и табуляция. Проверяйте, иначе JSON будет с одним ключом на всю строку.
  • Экранирование: Поля, содержащие запятую или кавычку, обрамляются двойными кавычками. Кавычка внутри поля удваивается (""). Большинство парсеров это понимают, но самописные на коленке — нет.
  • Переносы строк в полях: Внутри кавычек допустим \n. Не все парсеры обрабатывают. Papa Parse умеет.
Если не уверены в формате — сначала откройте CSV в текстовом редакторе (Notepad++, VS Code) и посмотрите на «сырые» данные.

Как отлаживать конвертацию

  1. Проверьте количество полей: В CSV каждая строка должна иметь одинаковое число колонок. Если нет — выровняйте или используйте парсер с опцией skip_empty_lines.
  2. Выведите первые 3 строки в формате JSON и визуально проверьте, все ли значения на месте.
  3. Для Python используйте модуль json с ensure_ascci=False, чтобы увидеть кириллицу.
  4. Проверьте типы: После конвертации typeof каждого поля — если все строки, а вы ждали числа, нужно преобразование.
  5. Используйте валидатор JSON (например, jsonlint.com) для проверки синтаксиса результирующего файла.

Частные случаи: CSV без заголовков, нескольких таблиц, вложенных структур

CSV без заголовков: Используйте header: false в Papa Parse или fieldnames в csvkit. В Python читайте csv.reader и затем вручную присваивайте ключи.

Один файл — несколько таблиц: По соглашению их разделяют пустой строкой. Ни один инструмент не умеет это правильно, придётся предобрабатывать.

Вложенные структуры: CSV плоский, поэтому для вложенности (например, массив заказов у клиента) нужно использовать либо несколько файлов, либо соглашение об именовании полей (order.0.id, order.0.total). После конвертации JSON придётся дорабатывать скриптом.

Для обратной задачи — из JSON в CSV — воспользуйтесь JSON в CSV. Он автоматически выберет одинаковые ключи из всех объектов.

Бонус: как конвертировать Excel в JSON

Если у вас Excel, а не CSV, сначала проще преобразовать в CSV, а затем в JSON. Или сразу используйте XLSX в JSON — он парсит .xlsx напрямую, учитывая типы данных из Excel (числа, даты, формулы). Работает в браузере без загрузки. Можно даже выбрать, какие листы конвертировать.

Обратная операция — JSON в XLSX — нужна, чтобы отдать заказчику таблицу. Для глубоких иерархий сначала «сплющите» JSON в массив плоских объектов.

🧮 Посчитайте сами — инструменты по теме

🧭 Разделы по теме

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

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

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

Как сохранить числовые типы при конвертации CSV в JSON?

В CSV все значения — строки. Чтобы получить числа, после парсинга преобразуйте каждое поле: например, в Python int(row['age']). Некоторые инструменты (csvkit, Miller) делают это автоматически по содержимому.

Что делать, если в CSV используется точка с запятой вместо запятой?

Укажите delimiter=';' в настройках парсера. Наш онлайн-конвертер определяет разделитель автоматически. Если ручками — в Python csv.reader(..., delimiter=';').

Как конвертировать CSV с кириллицей в JSON без кракозябр?

Убедитесь, что исходный CSV в UTF-8. Если он в windows-1251 — перекодируйте перед парсингом или используйте онлайн-конвертер, который определяет кодировку. В JSON символы должны быть в UTF-8.

Как конвертировать большой CSV (сотни МБ) в JSON?

Используйте потоковую обработку: в Python модуль csv читает построчно, в Node.js — Papa Parse с stream. Не загружайте весь файл в память. Или утилиты командной строки: csvkit, Miller.

Можно ли конвертировать несколько CSV в один JSON?

Да. Сначала преобразуйте каждый CSV в массив объектов, затем объедините массивы. Либо именуйте каждый массив по имени файла. Онлайн-конвертер может обработать один файл за раз, потом склеивайте вручную.

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

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

Чем отличается конвертер CSV в JSON от XLSX в JSON?

Конвертер XLSX в JSON читает бинарный формат Excel, сохраняет типы ячеек (числа, даты, формулы как значения), может выбрать лист. CSV — текстовый, проще, но без типов.

Источники и нормативные документы

  1. Papa Parse — документация
  2. csvkit — официальный сайт
  3. Miller — документация
  4. MDN — руководство по CSV

Ещё по теме «IT и код»