T

Text Machine

Мощные текстовые инструменты прямо в браузере

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

Преобразуйте CSV или TSV в чистый JSON прямо в браузере. Первая строка становится ключами, разделитель определяется автоматически, а каждое значение можно оставить текстом или типизировать числа и логические значения — ничего не загружается на сервер.

Разделитель

Результат

Значения

Первая строка становится ключами для каждого объекта.

CSV
JSON

Здесь появится ваш JSON.

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

  1. 1

    Вставьте CSV

    Вставьте строки данных CSV или TSV по одной записи на строку. Оставьте названия столбцов в первой строке, чтобы они могли стать ключами.

  2. 2

    Выберите разделитель

    Оставьте режим Авто, чтобы автоматически определять запятые, точки с запятой или табуляцию, либо выберите разделитель, который используется в ваших данных.

  3. 3

    Выберите форму результата

    Используйте Объекты, чтобы превратить каждую строку в объект с ключами из заголовка, или Строки, чтобы оставить каждую строку простым массивом. Переключите Значения на Типы, чтобы читать числа и логические значения как настоящие типы JSON.

  4. 4

    Скопируйте JSON

    Скопируйте отформатированный JSON и вставьте его прямо в код, запрос к API или файл конфигурации.

Разбор CSV в JSON: заголовки, типы и нерегулярности

CSV выглядит простым, но таковым не является

Файл с разделителями-запятыми кажется тривиальным — значения, запятые, переносы строк, — но эта простота является ловушкой. У CSV нет официального, повсеместно соблюдаемого стандарта; RFC 4180 документирует общие договорённости, однако экспортёры расходятся в заключении в кавычки, окончаниях строк и разделителях. Трудные случаи — это ровно те, которые наивное разбиение по запятым делает неправильно: значения, которые сами содержат запятые, значения, содержащие символ кавычки, и значения, охватывающие несколько строк.

Настоящий парсер обрабатывает их, читая правила заключения в кавычки, а не просто разбивая текст. Поле, обёрнутое в двойные кавычки, может законно содержать запятые и экранированные кавычки (записанные как две двойные кавычки подряд), и этот инструмент учитывает именно это: ячейка, содержащая "Portland, Oregon", остаётся одним значением, а не становится двумя столбцами, а удвоенная кавычка внутри поля сворачивается в одну буквальную кавычку. Единственный случай, который он не восстанавливает, — это значение с переносом строки внутри кавычек, потому что он сначала разбивает файл на записи построчно, — поэтому держите каждую запись на своей строке или убирайте переносы внутри ячеек перед преобразованием.

Форма вывода: массив объектов

Естественная форма таблицы в JSON — это массив объектов, по одному объекту на строку данных. Первая строка CSV рассматривается как заголовок, и каждая ячейка заголовка становится ключом, общим для каждого объекта. Вставьте три столбца с именами name, role и city, за которыми следуют две строки данных, и вы получите массив из двух объектов, у каждого из которых эти три ключа сопоставлены со значениями этой строки. Это та форма, которую ожидает большинство API и скриптов импорта.

Если у ваших данных нет строки заголовка, этому сопоставлению неоткуда брать ключи. Переключитесь на режим вывода строк, и каждая строка станет обычным массивом значений, сохраняя сырую сетку без изобретения имён. Выбор правильного режима вывода заранее избавляет вас от объектов, ключами которых стала случайная первая строка данных.

Всё является строкой, пока вы не скажете иначе

Это самая важная оговорка при чтении CSV. Формат вообще не несёт информации о типах — каждая ячейка является текстом. Без вмешательства число 42 становится строкой 42, слово true становится строкой true, а пустая ячейка становится пустой строкой. Код, ожидающий настоящее число или булево значение из этих полей, будет тихо вести себя неправильно.

Включите типизированные значения, и парсер повысит обычный числовой текст до чисел JSON, слова true и false до булевых значений, а слово null до настоящего null. Вывод типов удобен, но по своей природе эвристичен, поэтому следите за краями: идентификаторы с ведущими нулями, телефонные номера, почтовые индексы и строки, похожие на версии, технически выглядят числовыми, но обычно должны оставаться текстом. Когда для этих полей важна точность, держите значения как текст и преобразуйте осознанно в собственном коде.

Определение разделителя и TSV

Не каждый файл с разделёнными значениями использует запятые. Таблицы во многих европейских локалях экспортируются с точками с запятой, потому что запятая является десятичным знаком, а копирование диапазона прямо из таблицы обычно даёт значения, разделённые табуляцией. Режим Auto осматривает первую строку вашего ввода и выбирает то из запятой, точки с запятой или табуляции, что встречается там чаще всего, поэтому файл с запятыми, файл с точками с запятой и TSV — все преобразуются без изменения вами какого-либо параметра.

Автоопределение надёжно для чистых данных, но его может обмануть файл, чья первая строка случайно содержит больше одного разделителя, чем настоящий разделитель. Если столбцы выходят неправильными, переопределите догадку и задайте разделитель явно — это устраняет неоднозначность за один шаг.

Кодировка, BOM и другие невидимые гремлины

Файлы, экспортированные из табличного ПО, часто начинаются с метки порядка байтов (BOM), невидимого символа в самом начале файла. Оставленная на месте, она приклеивается к первому имени заголовка, поэтому ключ, который должен быть id, тихо становится немного другой строкой, и ваши поиски по id промахиваются. Несогласованные окончания строк между операционными системами и концевые пустые строки — другие обычные подозреваемые, порождающие фантомные строки или столбцы со сдвигом на единицу.

Этот инструмент обрезает каждый заголовок и ячейку, поэтому обычные гремлины по большей части улаживаются сами собой: он терпит окончания строк как Unix, так и Windows, и поскольку ведущая метка порядка байтов считается обрезаемым пробельным символом, она автоматически убирается из первого заголовка, а не приклеивается к ключу. Вот почему вставка сюда сырого экспорта таблицы обычно просто работает. Если преобразованный ключ всё же отказывается совпадать в коде, заподозрите случайный символ, который обрезка не удаляет, — скажем, пробел нулевой ширины, — и заново экспортируйте файл как обычный UTF-8.

Неровные строки и пустые ячейки

Настоящие таблицы беспорядочны: у некоторых строк есть концевые пустые ячейки, у некоторых полностью отсутствуют поля, а в конце прокрадывается случайная пустая строка. Когда в строке меньше значений, чем заголовков, отсутствующие поля показываются как пустые строки, а не обрушивают преобразование, поэтому выходной массив остаётся прямоугольным и каждый объект несёт полный набор ключей.

Прежде чем довериться результату, бегло просмотрите его на предмет красноречивой строки, где значения кажутся сдвинутыми на один столбец, — это признак неэкранированного разделителя внутри незакавыченного поля выше по потоку. Исправление исходного файла (заключение проблемного значения в кавычки) гораздо надёжнее, чем попытка залатать JSON постфактум.

Где CSV-в-JSON оправдывает себя

Самое частое применение — превращение таблицы, которую вам кто-то передаёт, в данные, которые может потреблять ваша программа: засеять базу данных, построить тело запроса API, сгенерировать файл конфигурации или питать тестовую фикстуру. Не-разработчики живут в таблицах, разработчики живут в JSON, и это преобразование — мост между ними без написания одноразового парсера каждый раз.

Поскольку весь разбор выполняется в вашем браузере, вы можете преобразовывать конфиденциальные экспорты — списки клиентов, внутренние метрики, финансовые строки — не загружая ничего в стороннюю службу. Держите в уме одно правило для безопасности ниже по потоку: осознанно решайте, должен ли каждый столбец быть типизирован или оставлен как текст, поскольку тихое приведение типов — самая частая причина, по которой импортированные данные ведут себя иначе, чем показывала таблица.

Часто задаваемые вопросы

Как преобразовать CSV в JSON?
Вставьте CSV с названиями столбцов в первой строке, и отформатированный JSON сразу появится ниже. Нажмите кнопку Копировать, чтобы получить результат. Всё выполняется в вашем браузере.
Обязательно ли первая строка должна быть заголовком?
В режиме Объекты первая строка используется как ключи для каждого объекта. Если в ваших данных нет заголовка, переключитесь в режим Строки, и каждая строка вместо этого станет простым массивом значений.
Умеет ли он читать табуляцию или точку с запятой, а не только запятые?
Да. Режим Авто определяет данные, разделённые запятой, точкой с запятой и табуляцией, поэтому и копия из табличного редактора, и CSV в европейском стиле преобразуются без изменения каких-либо настроек.
Как обрабатываются числа и логические значения?
По умолчанию каждое значение остаётся строкой. Переключите Значения на Типы, и инструмент прочитает обычные числа как числа JSON, true и false как логические значения, а слово null как настоящий null.
Загружаются ли мои данные куда-либо?
Нет. Преобразование выполняется полностью в вашем браузере с помощью JavaScript, поэтому ваш CSV никогда не покидает устройство и ничего не сохраняется на сервере.

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

Продолжайте работу с этими удобными инструментами

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

Конвертер Unix-времени

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

Конвертер текста в двоичный код

Конвертер текста в HEX

Переводчик азбуки Морзе