Как пользоваться конвертером CSV ↔ JSON
- Выберите направление: CSV → JSON или JSON → CSV.
- Вставьте данные. Для CSV первая строка считается строкой заголовков, а разделитель определяется автоматически.
- Проверьте результат. Включите преобразование типов, если нужны числа и логические значения вместо строк.
- Скопируйте результат или вставьте его в код, API-запрос или таблицу.
Весь разбор данных выполняется в вашем браузере. Данные вашей таблицы нигде не загружаются и не хранятся, поэтому инструмент безопасно использовать для списков клиентов и внутренних выгрузок.
Как CSV преобразуется в JSON
CSV (comma-separated values, значения, разделённые запятыми) — это плоская таблица: одна запись на строку, поля разделены разделителем. Если есть строка заголовков, каждый заголовок становится ключом, а каждая следующая строка — объектом JSON. Весь файл превращается в массив объектов:
id,name,city
1,Ada,London
2,Linus,Helsinki
[
{"id": "1", "name": "Ada", "city": "London"},
{"id": "2", "name": "Linus", "city": "Helsinki"}
]
Обратное преобразование JSON в CSV работает наоборот: конвертер собирает ключи объектов, чтобы сформировать строку заголовков, а затем записывает по одной строке на каждый объект. Если у объекта нет какого-то ключа, в ячейке будет пусто.
Автоматическое определение разделителя
Несмотря на название, файлы «CSV» часто используют другие разделители. Табличные программы в регионах, где десятичным разделителем служит запятая, обычно экспортируют данные с точкой с запятой, а многие инструменты баз данных экспортируют значения, разделённые табуляцией (TSV). Конвертер анализирует первые строки и выбирает разделитель (запятую, точку с запятой, табуляцию или вертикальную черту), при котором все строки делятся на одинаковое число столбцов.
Поля в кавычках (RFC 4180)
RFC 4180 — это самое близкое к стандарту, что есть у CSV. Его главные правила: поле, содержащее разделитель, двойную кавычку или перенос строки, должно быть заключено в двойные кавычки, а двойная кавычка внутри поля в кавычках экранируется удвоением.
name,comment
"Smith, John","He said ""hello"""
"Lee","Line one
Line two"
Получатся две записи: у первой имя Smith, John и комментарий He said "hello", а у второй комментарий содержит настоящий перенос строки.
Частые подводные камни
Вложенный JSON не помещается в плоскую таблицу
В CSV нет понятия вложенности. Вложенные объекты обычно разворачиваются с помощью точечной нотации, но у массивов нет единственного очевидного представления:
{"id": 1, "address": {"city": "Oslo", "zip": "0150"}, "tags": ["a", "b"]}
id,address.city,address.zip,tags
1,Oslo,0150,"[""a"",""b""]"
Массивы сериализуются как текст JSON внутри ячейки. Если ваши данные сильно вложены, подумайте, подходит ли CSV в качестве целевого формата.
Преобразование типов может испортить данные
Любое значение в CSV — текст. Автоматическое преобразование типов удобно, но оно превращает почтовые индексы вроде 0150 в 150, телефонные номера в числа, а длинные идентификаторы в округлённые значения (числа JavaScript точны только до 253). Для столбцов с идентификаторами оставляйте преобразование типов выключенным.
Метка порядка байтов и окончания строк
Файлы, сохранённые в Excel как «CSV UTF-8», начинаются с невидимой метки порядка байтов (BOM), которая может «прилипнуть» к названию первого заголовка. RFC 4180 предписывает окончания строк CRLF, но файлы только с LF встречаются часто и, как правило, принимаются.
Советы
- Следите за тем, чтобы названия заголовков были уникальными; повторяющиеся заголовки перезаписывают друг друга как ключи JSON.
- Удаляйте пробелы после разделителей (
a, b), если ваш источник их добавляет, иначе они станут частью значения. - Проверьте полученный JSON с помощью инструмента Форматирование и валидация JSON или превратите его в YAML с помощью инструмента Конвертер JSON ↔ YAML.
Часто задаваемые вопросы
Что делать, если в моём CSV нет строки заголовков?
Без заголовков естественных имён ключей нет. Тогда конвертеры либо выдают массив массивов, либо создают ключи-заглушки вроде column1, column2. Если сначала добавить строку заголовков, JSON получится чище.
Почему все мои числа — строки?
CSV хранит всё как текст, поэтому точное преобразование сохраняет строки. Включите преобразование типов, чтобы получить числа, true/false и null, но будьте осторожны со значениями, которые только выглядят как числа.
Можно ли преобразовать объект JSON, а не массив?
Файл CSV представляет много строк, поэтому естественный вход — массив объектов. Один объект превращается в одну строку данных. Если ваши записи обёрнуты в свойство вроде {"data": [...]}, вставьте внутренний массив.
Как правильно открыть CSV в Excel?
Используйте функцию импорта данных в Excel, а не двойной щелчок по файлу: так вы сможете выбрать разделитель и кодировку и пометить столбцы с идентификаторами как текст, чтобы сохранить ведущие нули.
Обновлено