CSV в JSON и обратно

Переводит выгрузку из таблицы в JSON, чтобы отдать её в скрипт или в API, и разбирает JSON обратно в таблицу, чтобы открыть в Excel. Разделитель определяется сам: точка с запятой из русского Excel, запятая из международного формата, табуляция при копировании из Google Таблиц.

Настройки

Данные

Исходник

Результат

Предпросмотр

Показаны первые десять строк разобранной таблицы.

Что переносится и как

Конвертер переводит табличные данные в структуру JSON и обратно. Первая строка таблицы становится набором ключей, каждая следующая — объектом в массиве.

Обратный перевод сложнее: JSON допускает вложенность, а таблица плоская. Вложенные объекты разворачиваются в колонки с составными именами вида «адрес.город», а массивы — либо в колонки с индексами, либо в строку с разделителем.

Отдельная настройка — типы значений. В таблице всё строки, в JSON есть числа, логические значения и null. Автоматическое определение типов удобно, но превращает почтовый индекс «01234» в число 1234, и для таких колонок его отключают.

Инструмент работает в браузере и держит файлы в памяти. На выгрузках в сотни тысяч строк это упирается в возможности вкладки, и такие объёмы разумнее обрабатывать построчно другими средствами.

Структура данных
Таблица плоская, а JSON допускает вложенность — обратный перевод сложнее прямого. Фото: Romainhk, CC BY-SA 3.0.
ЧтоКак переносится
Заголовок таблицыКлючи объектов
СтрокаОбъект в массиве
Вложенный объектКолонка «а.б»
МассивКолонки с индексами

Крокфорд, отказ от XML и убранные комментарии

JSON придумал Дуглас Крокфорд в начале двухтысячных, взяв за основу запись объектов из языка JavaScript. Идея была в том, чтобы данные могли выполняться как код и разбираться без отдельного анализатора.

До этого обмен структурированными данными шёл через XML, заметно более многословный. Переход на JSON сократил объём передаваемого примерно вдвое и упростил работу в браузере, где он разбирается штатными средствами.

Стандарт закреплён в 2013 году сразу двумя организациями, а в 2017-м вышло уточнённое описание. Формат намеренно оставлен минимальным: в нём нет комментариев, дат и целых чисел как отдельного типа.

Отсутствие комментариев — сознательное решение Крокфорда: он убрал их, потому что разработчики начали класть в комментарии директивы для обработчиков, что превращало формат данных в язык.

Документ разметки
Переход с XML на JSON сократил объём передаваемого примерно вдвое. Фото: Diego Mariano, CC BY-SA 4.0.
Обмен данными
Формат намеренно оставлен минимальным: в нём нет ни комментариев, ни дат. Фото: Muhammad Rafizeldi, CC BY-SA 4.0.

Как перевести без потери данных

Проверяйте заголовки перед переводом. Пробелы, точки и кириллица в названиях колонок превращаются в неудобные ключи, и лучше привести их к латинице заранее.

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

Учтите порядок ключей. В стандарте он не значим, но при сравнении файлов построчно перестановка ключей выглядит как изменение данных.

Для дат договоритесь о формате. В JSON типа даты нет, и записывают их строкой; международный формат с годом впереди сортируется как текст правильно, а привычный день-месяц-год — нет.

Договоритесь о кодировке чисел. Дробные значения в JSON записываются с точкой, и выгрузка с запятой в качестве разделителя разбирается неправильно или падает.

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

Сверяйте число записей до и после перевода. Совпадение количества — простейшая проверка, которая ловит большую часть ошибок разбора.

Для больших выгрузок разбивайте файл на части. Массив из миллиона объектов требует загрузки целиком в память, тогда как построчный формат обрабатывается потоком.

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

Проверяйте кодировку на выходе. JSON по стандарту записывается в UTF-8, и файл в другой кодировке часть библиотек читать откажется.

Разбить текст по колонкам поможет разделение на столбцы, а привести структуру в порядок — форматирование JSON.

Прямой переводтаблица в массив объектов
Обратныйразворот вложенности в колонки
Типыопределяются или отключаются
Ведущие нулитеряются при числовом типе
JSON придуманначало 2000-х
Стандарт2013, уточнён в 2017
Комментариевнет намеренно
Тип датыотсутствует

Как пользоваться

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

  1. CSV, TSV или JSON — направление определяется само, но его можно переключить вручную.
  2. Под полем показаны найденный разделитель, число строк и колонок и предпросмотр таблицы.
  3. Массив объектов или массив массивов, отступы, приведение чисел и пустых значений.
  4. Результат кладётся в буфер одной кнопкой либо сохраняется файлом.

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

Почему русский Excel сохраняет CSV с точкой с запятой

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

Что делать, если внутри ячейки есть запятая

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

Чем массив объектов отличается от массива массивов

В массиве объектов каждая строка становится объектом с именами полей из шапки — так удобнее читать и отдавать в API, но файл получается заметно больше, потому что имена повторяются в каждой строке. Массив массивов компактнее и сохраняет порядок колонок; шапка в нём идёт первой строкой.

Приводить ли числа к числам

Зависит от того, куда данные поедут. Если это артикулы, телефоны или почтовые индексы, приведение вредно: ведущие нули потеряются, а длинные номера превратятся в экспоненциальную запись. Для метрик и цен, наоборот, полезно. Поэтому переключатель есть, и по умолчанию он выключен.

Почему в результате появились пустые строки

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

Файл большой, браузер справится

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

Куда уходит вставленный текст?

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

Спросите нейросети об инструменте

Отвечает DeepSeek по данным этой страницы и тому, что у вас сейчас на экране: что делает, как устроен, ограничения

Больше возможностей: Нейросеть для кода, написать, найти ошибку, объяснить.

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

Текст в таблицу и обратно

Преобразовать текст в таблицу: разделитель, «поле: значение», пробелы или markdown распознаются сами, таблица вставляется в Word и Excel, скачивается .xlsx и .docx; обратно делает из таблицы текст.

Открыть
JSON-форматтер и валидатор

Разбирает JSON с отступами и в одну строку, показывает дерево с путями к узлам и объясняет ошибку по-русски: где висячая запятая, где кавычки из Word, где комментарий.

Открыть
Форматирование SQL

Раскладывает запрос по строкам с отступами, приводит ключевые слова к верхнему или нижнему регистру, не трогает строки и комментарии, умеет сжимать в одну строку.

Открыть
IP-адрес в двоичный вид

Преобразуйте IPv4-адрес в двоичный формат, 32-битную строку, hexadecimal и десятичное число.

Открыть
Извлечение доменов из URL

Извлеките доменные имена из списка ссылок, удалите www и дубли, отсортируйте результат. Обработка выполняется в браузере.

Открыть
Парсер параметров URL

Разберите query-параметры ссылки, декодируйте значения, найдите повторяющиеся ключи и получите JSON или список.

Открыть

Ещё инструменты для списков

Удаление дубликатов и сравнение двух списков, сортировка, столбец в строку и обратно, нумерация, частотность и шаблонизатор — в разделе 17 инструментов.