Зачем преобразовывать CSV в JSON
CSV — табличный формат данных, формат по умолчанию для экспорта из Excel. JSON — программно-ориентированный формат, стандарт передачи в API. Преобразование CSV в JSON позволяет табличным данным напрямую использоваться программами.
Типичные сценарии:
- Импорт данных Excel в базу данных сайта
- Подключение табличных данных к API
- Передача результатов анализа данных на фронтенд для отрисовки
- Перенос конфигурации из таблицы в файлы JSON
Различия между CSV и JSON
Формат CSV
name,age,city
Tom,25,Москва
Jerry,30,Санкт-Петербург
- Чистый текст, разделитель — запятая
- Первая строка — заголовок
- Каждая строка — одна запись
- Без типов (всё строки)
- Без вложенной структуры
Формат JSON
[
{"name": "Tom", "age": 25, "city": "Москва"},
{"name": "Jerry", "age": 30, "city": "Санкт-Петербург"}
]
- Структурированный, пары ключ-значение
- С типами (строка, число, логическое)
- Поддерживает вложенность
- Разбирается программой напрямую
Принцип преобразования
Сопоставление заголовков
Первая строка CSV — заголовок; при преобразовании в JSON заголовок становится ключами объекта:
- Заголовок: name, age, city
- Первая строка данных: Tom, 25, Москва
- Преобразование: {"name": "Tom", "age": "25", "city": "Москва"}
Распознавание типов данных
Все значения в CSV — строки. При преобразовании в JSON можно распознавать тип:
- Число: "25" → 25 (число)
- Логическое: "true" → true (логическое)
- Null: "" → null (пусто)
- Строка: остаётся строкой
Если тип не распознан, всё трактуется как строка.
Формирование массива
Каждая строка CSV становится объектом; все строки образуют массив:
[
{объект1},
{объект2}
]
Вложенная структура
Задача
CSV — плоская таблица; JSON поддерживает вложенность. Как преобразовать плоский CSV во вложенный JSON?
Способ 1: имена ключей через точку
Используйте в заголовке CSV точки для обозначения иерархии:
name,address.city,address.zip
Tom,Москва,101000
Преобразовать в JSON:
{
"name": "Tom",
"address": {
"city": "Москва",
"zip": "101000"
}
}
Способ 2: индекс массива
name,tags[0],tags[1]
Tom,A,B
Преобразовать в JSON:
{
"name": "Tom",
"tags": ["A", "B"]
}
Способ 3: разделение точкой с запятой
name,tags
Tom,"A;B;C"
Преобразовать в JSON:
{
"name": "Tom",
"tags": ["A", "B", "C"]
}
Шаги преобразования
1. Подготовка CSV
Убедитесь, что CSV корректно отформатирован:
- Первая строка — заголовок
- Поля разделены запятыми
- Поля, содержащие запятую, заключаются в двойные кавычки
- Поля с двойными кавычками экранируются двумя двойными кавычками
2. Загрузка или вставка
Вставьте содержимое CSV в инструмент преобразования или загрузите файл CSV.
3. Настройка параметров
- Распознавать ли типы данных
- Способ обработки вложенных структур
- Формат вывода (массив или построчный объект)
4. Преобразование
Инструмент автоматически преобразует и выводит JSON.
5. Проверка
Проверьте, соответствует ли результат JSON ожиданиям:
- Корректны ли поля
- Корректны ли типы
- Корректна ли вложенность
Частые проблемы
Поля с запятой
Поля CSV, содержащие запятую, должны заключаться в двойные кавычки:
name,desc
Tom,"Hello, world"
Без кавычек поле будет воспринято как два, и преобразование завершится ошибкой.
Нечитаемые символы
Используйте кодировку UTF-8 для CSV. Excel может по умолчанию использовать GBK; при экспорте выберите UTF-8.
Обработка пустых значений
Пустая ячейка CSV при преобразовании в JSON становится пустой строкой "" или null?
- По умолчанию: пустая строка ""
- Умное распознавание: null
- Зависит от опции инструмента
Точность чисел
Очень большие числа могут терять точность при преобразовании в JSON. Например, 18-значный идентификационный номер как число превращается в экспоненциальную запись. Обрабатывайте идентификационные номера как строки (добавьте префикс-кавычку в CSV или укажите строковый тип при преобразовании).
Формат даты
Форматы дат в CSV не единообразны (2024-01-01, 2024/1/1, Jan 1 2024). При преобразовании в JSON оставляйте строкой и разбирайте на фронтенде.
BOM-заголовок
CSV, экспортированные из Excel, могут содержать BOM-заголовок (\uFEFF), из-за чего перед именем первого поля появляется невидимый символ. Инструмент преобразования должен автоматически удалять BOM.
Советы по преобразованию
Предобработка CSV
Перед преобразованием приведите данные в порядок в Excel:
- Удалите пустые строки
- Унифицируйте формат даты
- Проверьте полноту полей
Выборочное преобразование
Преобразуйте только нужные столбцы. Удалите ненужные столбцы в CSV, чтобы уменьшить размер JSON.
Пакетное преобразование
Очень большой CSV может зависнуть при разовом преобразовании. Преобразуйте пакетами по несколько сотен строк.
Проверка результата
После преобразования отформатируйте результат инструментом JSON и вручную проверьте несколько записей для подтверждения корректности.
Преобразование с помощью DocsAll
- Загрузите файл CSV или вставьте содержимое CSV
- Инструмент автоматически разберёт заголовок и данные
- Настройте параметры преобразования (распознавание типов и т. п.)
- Сгенерируйте JSON
- Скопируйте или скачайте результат
Преобразование в браузере, данные CSV не отправляются на сервер, подходит для работы с конфиденциальными данными.
Обратное преобразование: JSON в CSV
Иногда нужно обратное — преобразовать JSON в CSV:
- API возвращает JSON, а нужно экспортировать в Excel для анализа
- Экспорт JSON-полей базы данных в таблицу
Трудности преобразования JSON в CSV:
- Вложенные структуры нужно уплощить
- Обработка полей-массивов (объединение или разворачивание в несколько строк)
- Дополнение пустых значений при неоднородных полях
Итоги
Суть преобразования CSV в JSON — сопоставление заголовков с именами ключей, распознавание типов данных и обработка вложенных структур. Обратите внимание на поля с запятой, кодировку символов, пустые значения и точность больших чисел. Инструмент CSV в JSON от DocsAll работает в браузере, данные не уходят наружу.