Конвертер CSV ↔ JSON (соответствует RFC 4180)
Вставьте CSV или JSON. Конвертер разбирает CSV по RFC 4180 (обрабатывает поля в кавычках с запятыми, экранированные кавычки, многострочные значения). Для JSON в CSV принимает как массив объектов (использует ключи как заголовки), так и массив массивов.
[
{
"name": "Alice",
"age": "30",
"city": "Tokyo"
},
{
"name": "Bob",
"age": "25",
"city": "Seoul"
},
{
"name": "Carol",
"age": "42",
"city": "Madrid"
}
]Как это работает
Почему важен RFC 4180
CSV выглядит просто, но имеет граничные случаи: поле, содержащее запятую, должно быть в кавычках; поле, содержащее кавычку, должно экранировать её удвоением; поле может содержать переносы строк, если заключено в кавычки. Наивные парсеры «разбить по запятой» ломаются на реальных данных. Этот конвертер точно реализует грамматику RFC 4180.
Наивные парсеры также ломаются на экспортах Excel, использующих точку с запятой (распространено в европейских локалях, где ',' является разделителем дробной части) или табуляцию (TSV). Выпадающий список разделителей охватывает все четыре распространённых варианта.
Форматы JSON на выходе
Массив объектов (по умолчанию со строкой заголовка): каждая строка становится {столбец: значение}. Наиболее распространённый формат JSON, удобный для потребления на любом языке.
Массив массивов (строка заголовка выключена): каждая строка становится [v1, v2, ...]. Полезно, когда столбцы не именованы или нужна позиционная структура.
При конвертации JSON в CSV конвертер определяет форму. Объекты: извлекает уникальные ключи по всем строкам для заголовков. Массивы: записывает строки как есть.
Распространённые проблемы
Локаль Excel: в некоторых европейских инсталляциях Excel разделитель по умолчанию ';', а не ','. Если ваш CSV при импорте выглядит как один гигантский столбец, переключитесь на ; в выпадающем списке разделителей.
BOM (метка порядка байт): некоторые экспорты Excel добавляют в начало файла U+FEFF. Мы пропускаем его; если ваш нижестоящий парсер даёт сбой, удалите первые 3 байта.
Завершающий перенос строки: CSV, заканчивающийся на '\n', добавляет пустую последнюю строку в некоторых парсерах; мы автоматически фильтруем пустые строки.
Числа как строки: CSV не имеет типов — '42' становится строкой "42" в JSON. Если нужны типизированные значения, добавьте шаг постобработки, приводящий известные числовые столбцы к нужному типу.
Частые вопросы
›Обрабатываются ли поля в кавычках с запятыми?
Да — кавычки RFC 4180 полностью поддерживаются. "Иванов, Иван" парсится как одно поле.
›Как обрабатываются экранированные кавычки?
По RFC 4180 буквальная '"' внутри поля в кавычках записывается как '""' (две кавычки). Парсер обрабатывает это корректно.
›Могут ли поля содержать переносы строк?
Да, если в кавычках. "строка 1\nстрока 2" внутри кавычек воспринимается как одно поле со встроенным переносом строки.
›Поддерживается ли BOM (UTF-8)?
BOM пропускается. Если ваш нижестоящий потребитель его не переносит, удалите первые 3 байта (EF BB BF) из CSV.
›Что насчёт больших файлов?
Браузер без проблем обрабатывает несколько МБ. Для очень больших CSV (100 МБ+) используйте потоковый парсер, например Papa Parse с воркером, или CLI-инструмент.
›Числа сохраняются как числа?
CSV → JSON: все значения становятся строками (CSV не типизирован). JSON → CSV: числа становятся неквотированными ячейками CSV. Для типизированного JSON постобрабатывайте столбцы, которые знаете как числовые.
›Почему в JSON показываются пустые строки вместо null?
CSV представляет отсутствующие значения как пустые ячейки. Мы сопоставляем их с пустыми строками. Для получения null в JSON постобрабатывайте вывод.
›Данные покидают браузер?
Нет. Конвертация выполняется локально; ничего не передаётся на сервер.
Похожие инструменты
Обновлено: