Что это за инструмент?
API и базы данных обычно возвращают данные в формате JSON, но электронные таблицы, Excel, Google Sheets и большинство инструментов для импорта данных работают с форматом CSV. Этот инструмент устраняет это несоответствие: вставьте массив объектов JSON (например, ответ API), и он сформирует файл CSV, в котором каждый уникальный ключ будет представлен отдельным столбцом, а каждый объект — отдельной строкой.
Функция преобразования учитывает нюансы, которые приводят к сбоям при использовании простых подходов: значения, содержащие запятые или кавычки, правильно экранируются; отсутствующие поля заполняются пустыми ячейками, а не приводят к сбою преобразования; а вложенные объекты или массивы внутри поля сериализуются в виде JSON-строки в этой ячейке, а не игнорируются без предупреждения.
Зачем его использовать?
- Автоматическое распознавание заголовков — список столбцов формируется на основе объединения ключей всех объектов, поэтому несогласованные записи не приводят к сбоям в выводе данных.
- Правильная экранировка CSV — значения, содержащие запятые, кавычки или символы переноса строки, правильно заключаются в кавычки, благодаря чему файл без проблем открывается в Excel или Google Sheets.
- Обрабатывает вложенные данные — объект или массив, находящийся внутри поля, сериализуется в текст JSON, а не вызывает ошибку.
- Скопируйте в буфер обмена или скачайте напрямую в формате .csv.
- 100 % на стороне клиента — ваши данные (ответы API, экспортированные записи) никуда не загружаются.
Как использовать
- Вставьте массив объектов в формате JSON, например [{"name":"Alice","age":30},{"name":"Bob","age":25}].
- Нажмите «Преобразовать в CSV».
- Просмотрите результаты — скопируйте их или нажмите «Скачать CSV», чтобы сохранить файл.
- Откройте загруженный файл в Excel, Google Sheets или любом другом редакторе электронных таблиц.
Пример
Ввод
[{"name":"Alice","age":30},{"name":"Bob","city":"NYC"}]Результат
name,age,city
Alice,30,
Bob,,NYCОбратите внимание, что «город» и «возраст» становятся столбцами, хотя ни один объект не содержит обоих значений — пропущенные значения просто оставляются пустыми.
Практические советы
- Преобразование ответа API для отчета в формате электронной таблицы: вставьте массив JSON напрямую из вкладки «Сеть» браузера или из инструмента для тестирования API, преобразуйте и скачайте — промежуточный скрипт не требуется.
- Работа с несогласованными записями (например, необязательными полями из экспорта формы): благодаря автоматическому распознаванию заголовков вам не нужно сначала вручную согласовывать схемы.
- Если ваш JSON представляет собой один большой объект с вложенным массивом (например, {"users": [...]}), выделите только часть с массивом (фрагмент [...]), прежде чем вставлять его сюда.
Почему порядок столбцов и полнота данных имеют значение
Незаметная, но распространённая ошибка при работе с CSV возникает, когда данные экспортируются путём ручного ввода заголовков, при этом предполагается, что все строки соответствуют шаблону: если в 50-й строке из 1000 появится дополнительное поле, которого не было ни в одной из предыдущих строк, простой скрипт, записывающий данные в CSV построчно, либо без предупреждения пропустит это поле, либо сместит все последующие столбцы, нарушив выравнивание. Этот инструмент позволяет избежать такой ошибки, сначала сканируя каждый объект в массиве для построения полной и корректной строки заголовка, прежде чем записывать хотя бы одну строку вывода — таким образом, поле, которое появляется только один раз, в самом последнем объекте, всё равно получает свой собственный столбец, а значения для него во всех остальных строках корректно отображаются как пустые, вместо того чтобы нарушать структуру строк.
Часто задаваемые вопросы
Работает ли это с одним объектом JSON вместо массива?
Программа ожидает массив — поместите отдельный объект в квадратные скобки, например, замените {"name":"Alice"} на [{"name":"Alice"}], и он преобразуется в CSV-файл с одной строкой.
Что происходит с вложенными объектами или массивами внутри поля?
Они сериализуются в виде JSON-строки внутри этой ячейки (например, поле, содержащее {"a":1}, в CSV-файле превращается в текст "{""a"":1}" с надлежащим экранированием кавычек), а не вызывают ошибку и не игнорируются. Если вам нужно преобразовать вложенные данные в отдельные столбцы, для этого потребуется другой инструмент, специфичный для данной схемы.
Мои данные загружаются на сервер?
Нет. Преобразование выполняется полностью в браузере с помощью JavaScript — никакие данные никуда не отправляются, что делает этот процесс безопасным для работы с экспортированными данными клиентов или компании.
Почему в моем файле CSV есть пустые ячейки?
Если у некоторых объектов в массиве отсутствует ключ, который есть у других, этот столбец будет присутствовать, но ячейка для объектов, у которых его нет, останется пустой — это позволяет сохранить все ваши данные, вместо того чтобы выдавать ошибку из-за несоответствий в записях.
Приведут ли значения, разделенные запятыми, к сбою в работе CSV-файла?
Нет. Любое значение, содержащее запятую, кавычку или символ переноса строки, автоматически заключается в кавычки (с экранированием внутренних кавычек) в соответствии со стандартными правилами CSV, благодаря чему оно корректно открывается в Excel и Google Sheets.