Конвертер CSV в JSON
Преобразуйте CSV или TSV в чистый JSON прямо в браузере. Первая строка становится ключами, разделитель определяется автоматически, а каждое значение можно оставить текстом или типизировать числа и логические значения — ничего не загружается на сервер.
Разделитель
Результат
Значения
Первая строка становится ключами для каждого объекта.
Здесь появится ваш JSON.
Как пользоваться Конвертер CSV в JSON
- 1
Вставьте CSV
Вставьте строки данных CSV или TSV по одной записи на строку. Оставьте названия столбцов в первой строке, чтобы они могли стать ключами.
- 2
Выберите разделитель
Оставьте режим Авто, чтобы автоматически определять запятые, точки с запятой или табуляцию, либо выберите разделитель, который используется в ваших данных.
- 3
Выберите форму результата
Используйте Объекты, чтобы превратить каждую строку в объект с ключами из заголовка, или Строки, чтобы оставить каждую строку простым массивом. Переключите Значения на Типы, чтобы читать числа и логические значения как настоящие типы JSON.
- 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?
Обязательно ли первая строка должна быть заголовком?
Умеет ли он читать табуляцию или точку с запятой, а не только запятые?
Как обрабатываются числа и логические значения?
Загружаются ли мои данные куда-либо?
Похожие инструменты
Продолжайте работу с этими удобными инструментами