Что такое преобразование JSON в CSV?
JSON (JavaScript Object Notation, RFC 8259) — текстовый формат с древовидной структурой для представления данных; CSV (Comma-Separated Values, RFC 4180) — плоский табличный текстовый формат. Преобразование JSON в CSV разворачивает это дерево в строки и столбцы, чтобы набор данных, начавший жизнь как ответ API, открывался в электронной таблице без ручного переписывания.
Как работает преобразование JSON в CSV?
Каждое преобразование выполняется локально в вашем браузере. Основные шаги:
JSON.parseпроверяет ввод и подтверждает, что он является массивом записей верхнего уровня. При несоответствии скобок, запятых или ключей в кавычках выдаётся понятная ошибка.- Генератор выводит колонки заголовка из ваших записей — либо объединение всех встреченных ключей, либо только ключи из первой записи, в зависимости от переключателя.
- Вложенные объекты разворачиваются в точечные ключи (
user.id,user.city) или сериализуются как одна ячейка JSON, по вашему выбору. Массивы внутри объектов JSON-сериализуются в обоих режимах. - Каждая ячейка экранируется по RFC 4180: любое значение, содержащее разделитель, двойную кавычку или перенос строки, обёртывается кавычками, а внутренние кавычки удваиваются. Строки соединяются окончаниями
\r\n. - CSV помещается в текстовое поле только для чтения, а ссылка для скачивания создаёт
Blobс MIME-типомtext/csv;charset=utf-8, чтобы вы могли сохранить файл одним кликом.
Зачем преобразовывать JSON в CSV этим инструментом?
- Конфиденциальность: каждый этап разбора, разворачивания и записи происходит в вашем браузере. Данные никогда не попадают на наши серверы.
- Корректность: генератор следует RFC 4180. Значение вроде
Bob, Jr.получается как"Bob, Jr."— одна ячейка в кавычках, а не два столбца — и встроенные переносы строк или кавычки сохраняются после преобразования. - Готово для таблиц: результат вставляется прямо в Excel или Google Sheets с уже выведенными колонками заголовка, поэтому данные можно использовать без ручной чистки.
- Гибкость: разворачивайте вложенные объекты в точечные ключи или сериализуйте как одну ячейку, выбирайте любой разделитель для нестандартных CSV-диалектов и настраивайте источник заголовков — все ключи или только первая запись.
Каковы распространённые применения преобразования JSON в CSV?
Разворачивание JSON в CSV встречается во множестве задач работы с данными и инструментария:
- Экспорт данных: превращение ответа API в файл CSV, который команды финансов, операций или продукта могут открыть в Excel или Google Sheets без написания кода.
- Отчётность: вставка результата JSON-запроса в таблицу для сводной таблицы, диаграммы или быстрого столбца формул. Такая работа крайне неудобна с сырым JSON.
- Проверка в таблице: разворачивание вложенного JSON-конфига (настройки, флаги функций, A/B-варианты) в CSV, чтобы нетехнические рецензенты могли читать и редактировать его по ячейкам.
Как выглядит пример преобразования JSON в CSV?
Вставьте [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}], оставьте запятую в качестве разделителя и нажмите ПРЕОБРАЗОВАТЬ. Вы получите три строки: заголовок name,age, строку данных Alice,30 и строку "Bob, Jr.",25. Встроенная запятая — именно то, что ломает наивный join; здесь она включает экранирование по RFC 4180, сохраняя ячейку целой.
Работает ли этот конвертер JSON в CSV полностью в моём браузере?
Да. Каждый этап разбора, разворачивания и записи выполняется локально как JavaScript внутри вкладки браузера. Инструмент вообще не вызывает fetch, XMLHttpRequest или navigator.sendBeacon — ваши JSON-данные никогда не попадают на наши серверы, в сторонний конвертер или в аналитический конвейер. Инструмент также работает офлайн после загрузки страницы, поскольку это статический бандл HTML/CSS/JS без зависимостей от внешнего API.
Каков максимальный размер ввода, который выдержит этот конвертер?
Конвертер буферизует весь ввод в памяти и работает синхронно в главном потоке, поэтому практические пределы зависят от вашего устройства. Массив JSON до примерно 10 МБ (около 100 000 типичных записей) разворачивается в CSV без заметной паузы на современном ноутбуке. За этим порогом интерфейс может подвиснуть, пока работает генератор. Потоковое преобразование с использованием Web Worker и генератора по чанкам — запланированное продолжение; пока что очень большие наборы данных лучше разбивать перед вставкой.
Как генератор обрабатывает значения с запятыми, кавычками или переносами строк?
По RFC 4180. Любое значение, содержащее активный разделитель, двойную кавычку, CR или LF, обёртывается двойными кавычками, а внутренние кавычки удваиваются. Поэтому имя вроде Bob, Jr. становится одной ячейкой "Bob, Jr." и не разваливается на два столбца, а многострочное описание остаётся в одной ячейке. Именно здесь ломается наивный join(',').
Что происходит с вложенными объектами JSON при преобразовании в CSV?
Вложенные объекты обрабатываются согласно переключателю Вложенные объекты. В режиме Развернуть (по умолчанию) ключи соединяются точкой — {"user":{"id":1,"city":"Paris"}} становится колонками user.id и user.city. В режиме Сериализовать вложенный объект сериализуется как одно значение ячейки JSON с сохранённым экранированием по RFC 4180, что сохраняет его структуру для круговых преобразований. Массивы внутри объектов сериализуются как JSON в обоих режимах.
Какие разделители поддерживает вывод CSV?
Четыре: запятая (,, по умолчанию RFC 4180), точка с запятой (;, распространена в европейских локалях), табуляция (\t, диалект TSV) и вертикальная черта (|). Выберите тот, который ожидает ваш инструмент. Генератор экранирует любую ячейку, содержащую выбранный разделитель, так что выбор никогда не портит значение.
Этот конвертер JSON в CSV разворачивает ваш массив и выдаёт совместимый с RFC 4180 вывод, который можно вставить прямо в таблицу, отчёт или код-ревью — без отправки единого байта. Нужно в обратную сторону? Конвертер CSV в JSON разбирает данные в другом направлении.