Конвертер CSV в JSON
Вставьте CSV, и вы получите массив JSON из объектов с ключами по строке заголовков — или массив массивов, если заголовков нет. Переключите направление, чтобы превратить массив плоских объектов JSON обратно в CSV. Запятые в кавычках, удвоенные кавычки и переносы строк внутри полей читаются правильно, а преобразование выполняется в вашем браузере. Бесплатно, без регистрации.
Направление
Как пользоваться конвертером CSV в JSON
- 1. Выберите направление. CSV → JSON выбрано по умолчанию; JSON → CSV ожидает массив JSON из плоских объектов.
- 2. Задайте настройки. Разделитель можно определить автоматически или задать вручную: запятую, точку с запятой или табуляцию. Для JSON → CSV режим «Автоопределение» записывает запятые. Для CSV → JSON также выбирается отступ в 2 пробела, 4 пробела или табуляция и то, есть ли в первой строке заголовки.
- 3. Вставьте и преобразуйте. Нажмите Преобразовать. Проблемы — незакрытая кавычка, некорректный JSON, массив не из объектов — выводятся сообщением вместо результата.
- 4. Скопируйте или скачайте. Скопировать результат копирует вывод; кнопка скачивания сохраняет его как
data.jsonилиdata.csv.
Как читается CSV
CSV выглядит простым, но это не так: один и тот же файл может использовать запятые, точки с запятой или табуляцию, а поле может содержать тот самый символ, который разделяет поля. Ближайшее подобие спецификации — RFC 4180, который носит информационный, а не стандартный характер. В нём сказано, что поле с запятой, двойной кавычкой или переносом строки нужно заключить в двойные кавычки, а двойная кавычка внутри такого поля записывается как две. Конвертер следует этим правилам и добавляет некоторую снисходительность:
- Поля в кавычках. Поле, которое начинается с двойной кавычки, идёт до закрывающей кавычки, поэтому оно может содержать разделители, переносы строк и
""для буквальной кавычки. Кавычка, которая не закрыта, останавливает преобразование и сообщает строку, с которой она началась. - Окончания строк. LF, CRLF и одиночный CR завершают строку; пустые строки пропускаются.
- Определение разделителя. В автоматическом режиме конвертер смотрит только на первую строку и выбирает тот из запятой, точки с запятой или табуляции, который встречается чаще; при равенстве побеждает запятая. Если первая строка необычна — например, один столбец или строка с названием, — выберите разделитель сами. RFC 4180 знает только запятые; точки с запятой распространены в файлах, экспортированных из таблиц с европейской локалью.
- Всё — текст. Конвертер не угадывает типы, поэтому
2020становится строкой"2020", а не числом, а пустая ячейка —"", а не null. Если вашему коду нужны типы, преобразуйте их потом.
Пример
Заголовок
name,note,year
Строка 1
"Smith, Jane","Said ""hello""",2020
Строка 2
Lee,short
Результат
Два объекта. Smith, Jane получает примечание Said "hello" и год "2020"; Lee — примечание short и год "".
Запятая внутри Smith, Jane остаётся в одном поле благодаря кавычкам, а удвоенные кавычки сворачиваются в одну. В строке Lee на одну ячейку меньше, поэтому отсутствующий год становится пустой строкой; строка с лишними ячейками теряет эти лишние, потому что нет заголовка, который бы их назвал. Снимите флажок Первая строка — заголовки, и тот же ввод станет массивом массивов — [["name","note","year"],…] — с короткими строками, оставленными короткими.
Повторяющиеся имена заголовков конфликтуют: при двух столбцах с именем id более поздний побеждает, а более ранний теряется, поэтому сначала переименуйте один из них.
Обратно: из JSON в CSV
Обратное направление ожидает массив верхнего уровня, все элементы которого — объекты. Строка заголовков — это объединение всех ключей в порядке первого появления, поэтому объекты с разными ключами всё равно выстраиваются в столбцы, а отсутствующее значение остаётся пустым. Числа и логические значения записываются как есть, null становится пустой ячейкой, а любой вложенный массив или объект записывается в свою ячейку как текст JSON и заключается в кавычки. Если данные вложенные, сначала разверните их. Ячейки с разделителем, кавычкой или переносом строки заключаются в кавычки, при этом кавычки удваиваются, а строки разделяются простыми переводами строки.
Применительно к [{"name":"Smith, Jane","year":2020,"tags":["a","b"]},{"name":"Doe","note":"two\nlines","year":null}] конвертер записывает заголовок name,year,tags,note, первую строку "Smith, Jane", 2020 и текст в кавычках ["a","b"], а вторая строка для Doe — с пустыми годом и тегами и примечанием из двух строк в кавычках.
Какой инструмент вам нужен?
| Вам нужно | Используйте |
|---|---|
| Преобразовать между CSV и массивом JSON | Эта страница |
| Посмотреть CSV как таблицу и скопировать HTML | CSV в таблицу |
| Сделать таблицу Markdown из CSV | Генератор таблиц Markdown |
| Оставить только некоторые столбцы CSV | Извлечение столбцов |
| Проверить или переформатировать сам JSON | Форматирование JSON |
| Преобразовать YAML или XML в JSON и обратно | Конвертер YAML в JSON, Конвертер XML в JSON |
| Оформить CSV для статьи | Генератор таблиц LaTeX, Генератор таблиц APA |
Часто задаваемые вопросы
- Как преобразовать CSV в JSON?
- Вставьте CSV в поле, оставьте выбранным CSV → JSON и нажмите «Преобразовать». Если отмечено Первая строка — заголовки, вы получите массив объектов с ключами из названий столбцов; без неё — массив массивов. Скопируйте результат или скачайте его как data.json.
- Обрабатывает ли конвертер поля в кавычках с запятыми или переносами строк?
- Да. Поле в двойных кавычках может содержать разделитель, переносы строк и удвоенные кавычки, как описывает RFC 4180. Открывающая кавычка без закрывающей останавливает преобразование и называет строку, с которой начиналось поле.
- Какие разделители поддерживаются?
- Запятая, точка с запятой и табуляция — либо определённые автоматически по первой строке, либо выбранные вручную. Файлы с вертикальной чертой и другими разделителями не поддерживаются; сначала замените их запятыми с помощью извлечения столбцов или поиска и замены.
- Почему мои числа в JSON — строки?
- CSV не содержит типов, и конвертер их не угадывает, поэтому все значения появляются строками, а пустая ячейка — пустой строкой. Так значения вроде
007или1e5сохраняются ровно такими, как написаны; при необходимости превращайте их в числа в своём коде. - Как работает преобразование JSON в CSV?
- Нужен массив JSON из объектов. Каждый объект становится строкой, столбцы — все ключи, которые встречаются где-либо, а вложенные объекты или массивы записываются в свою ячейку как текст JSON. Некорректный JSON сообщается с номером строки, если парсер браузера даёт позицию.
- Почему мой CSV открывается в Excel неправильно после преобразования?
- Файл — это обычный UTF-8 без метки порядка байтов, с выбранным вами разделителем. Excel в регионе, который ждёт точку с запятой, может поместить всё в один столбец, а неанглийские символы могут потребовать настройки мастера импорта на UTF-8. Выбор разделителя «точка с запятой» часто решает первую проблему.
- Загружаются ли мои данные куда-либо?
- Нет. Оба направления работают в вашем браузере, а вставленный текст не отправляется на CitationEasy. Файл для скачивания создаётся локально.