Преобразовать CSV в JSON

Работает на вашем устройстве · Ваш файл никогда не покидает устройство.

Перетащите выгрузку .csv или вставьте текст — и получите список JSON: по объекту на строку, ключи из строки заголовков. Разбор идёт по RFC 4180, поэтому поля в кавычках, удвоенные кавычки, запятые и переносы строк внутри ячейки остаются целыми.

Разделитель столбцов определяется автоматически среди запятой, точки с запятой, табуляции и вертикальной черты — выгрузки из русского Excel с точкой с запятой работают без единой настройки, — и его можно задать вручную. По умолчанию "12" становится числом 12, "true" — логическим значением, пустая ячейка — null, но только там, где ничего не меняется: 1.50, 1e3, 007 и длинные идентификаторы остаются текстом, потому что как числа они записались бы обратно иначе. Отключите это, и каждое значение останется ровно тем текстом, каким было.

Повторяющимся и пустым заголовкам даются уникальные имена (column_3), метка BOM убирается, файл в UTF-16 или в старой кодовой странице читается как таковой, и об этом сообщается, строки, где ячеек больше, чем в заголовке, показываются с номером строки, а ошибка разбора сообщается с номером строки и столбца, а не расплывчатой фразой. Предпросмотр показывает первые 200 строк до скачивания.

Как Преобразовать CSV в JSON

  1. Перетащите файл CSV или вставьте текст CSV в поле.
  2. Оставьте разделитель на автоопределении или выберите его; решите, нужно ли типизировать числа и логические значения.
  3. Нажмите «Преобразовать в JSON» и просмотрите результат.
  4. Скачайте .json.

Поддерживаемые форматы и ограничения

Вход
CSV / TSV (.csv, .tsv, .txt) — файл или вставленный текст
Выход
Массив объектов JSON с отступами, UTF-8
Разбор
RFC 4180: кавычки, разделители и переносы строк внутри ячеек
Разделитель
Автоопределение: запятая, точка с запятой, табуляция, вертикальная черта
Где работает
В браузере — без загрузки на сервер

Не подходит для: Восстановления вложенных структур — CSV плоский, поэтому каждая строка становится плоским объектом; столбцы с точкой в имени обратно не вкладываются.

Что именно меняет распознавание типов

При включённом переключателе ячейка становится числом, только если это число записалось бы обратно тем же текстом: 12, -4 и 3.5 становятся числами. 1.50, 1e3 и -0 остаются текстом, потому что как числа они вернулись бы как 1.5, 1000 и 0. Так же текстом остаются 007, +5, " 12", 3,5, 1,250, значения со знаком процента или валюты и идентификатор длиннее, чем число может хранить точно.

true и false распознаются в любом регистре, так что TRUE становится true. Пустая ячейка становится null, а слово NULL остаётся текстом: это может быть и значение, и чьё-то имя. Даты вроде 2024-01-05 всегда остаются текстом.

Строки короче или длиннее заголовка

Ячейки сопоставляются с заголовком по позиции. Строка, где ячеек меньше, получает null в недостающих столбцах (пустую строку, если распознавание выключено). У строки, где ячеек больше, чем в заголовке, лишним некуда деться, поэтому они пропускаются, а сообщение над предпросмотром говорит, со сколькими строками так случилось и на какой строке файла начинается первая из них. Обычно это значит, что значение вроде Смирнов, Иван содержит разделитель, но не взято в кавычки.

Пустые строки пропускаются. У имён в заголовке обрезаются пробелы по краям; у значений — нет, так что " Казань" сохраняет свой пробел.

Как читаются кавычки и на что указывает ошибка

Кавычка открывает поле в кавычках, только если стоит первым символом поля; в середине, как в 5" экран, она остаётся частью текста. Кавычка, которая открыла поле и так и не закрылась, затянула бы остаток файла в одну ячейку, поэтому преобразование останавливается и называет строку и столбец, где эта кавычка открылась.

Определение разделителя и кодировка файла

Определение смотрит на первые 64 КБ, не больше 50 строк, и выбирает разделитель, который даёт одинаковое число столбцов на наибольшем числе строк; разделители внутри кавычек не считаются. В файле с точкой с запятой и десятичными запятыми, вроде A;1,5, находится точка с запятой, а 1,5 остаётся текстом.

Файл читается по тому, что на самом деле записано в его байтах: метка порядка байтов (BOM), UTF-16 (так Excel сохраняет «Текст в Юникоде») или UTF-8. Если байты не являются корректным UTF-8, берётся та старая кодовая страница, в которой они складываются в слова: кодовые страницы Windows для западноевропейских и центральноевропейских языков, кириллицы, греческого, турецкого, иврита, арабского (вместе с фарси и урду) и тайского, либо GB18030, Big5, Shift_JIS и EUC-KR для китайского, японского и корейского. Строка о файле тогда сообщает об этом, например «прочитан как windows-1251, не UTF-8»; в очень коротком файле мало букв, по которым можно судить, так что проверьте его предпросмотр.

Частые вопросы

Мои файлы загружаются на сервер?
Нет. Преобразование целиком выполняется в вашем браузере, силами вашего же устройства. Файл не покидает компьютер или телефон, а инструмент, которым вы уже один раз воспользовались, работает и без интернета.
Как обрабатываются числа, логические значения и пустые ячейки?
При включённом «Распознавать числа, логические значения и пустые ячейки» 12 и 3.5 становятся числами, true/false — логическими значениями, пустая ячейка — null. Значение становится числом, только если записалось бы обратно точно так же, поэтому 1.50, 1e3, ведущие нули (007) и длинные идентификаторы остаются текстом, и ничего не меняется незаметно. Отключите переключатель — и всё останется текстом.
В моём файле точка с запятой или табуляция — нужно что-то настраивать?
Нет. Разделитель определяется по первым строкам файла. Если он угадан неверно, выберите его явно из списка.
А если в ячейке запятая или перенос строки?
Для этого и существуют кавычки, и разбор обрабатывает их ровно по стандарту: поле в кавычках может содержать разделители, переносы строк и удвоенные кавычки.

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

Ещё в разделе Таблицы и данные

Эта страница на других языках: English · العربية · Deutsch · Français · Español · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা