Перейти к содержимому

Конвертер CSV в JSON

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

Направление

Как пользоваться конвертером CSV в JSON

  1. 1. Выберите направление. CSV → JSON выбрано по умолчанию; JSON → CSV ожидает массив JSON из плоских объектов.
  2. 2. Задайте настройки. Разделитель можно определить автоматически или задать вручную: запятую, точку с запятой или табуляцию. Для JSON → CSV режим «Автоопределение» записывает запятые. Для CSV → JSON также выбирается отступ в 2 пробела, 4 пробела или табуляция и то, есть ли в первой строке заголовки.
  3. 3. Вставьте и преобразуйте. Нажмите Преобразовать. Проблемы — незакрытая кавычка, некорректный JSON, массив не из объектов — выводятся сообщением вместо результата.
  4. 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 как таблицу и скопировать HTMLCSV в таблицу
Сделать таблицу 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. Файл для скачивания создаётся локально.

Похожие инструменты

Ещё в разделе «Данные, разметка и код»