← Назад к инструменту JSON

JSON в CSV

Последнее обновление: 1 октября 2026 г.

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

Работает в браузере Без загрузки По RFC 4180 BOM для Excel Открытый код (MIT)

Что делает это преобразование

Файл CSV — это таблица, записанная простым текстом: одна строка на запись, разделитель между ячейками и первая строка с именами столбцов. У JSON такой формы нет. Самая естественная точка пересечения — массив объектов: каждый объект является записью, а его ключи — именами полей. Именно так выглядит ответ API со списком, поэтому инструмент в первую очередь принимает эту форму.

Для [{"id":1,"name":"Ada"},{"id":2,"name":"Grace"}] вывод — строка заголовков id,name и две строки 1,Ada и 2,Grace. Кроме правил ниже, ничего не переставляется и не переписывается.

Какие формы JSON становятся таблицей

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

Вложенные значения становятся текстом

Ячейка может хранить только текст, поэтому объект или массив внутри значения записывается как компактный JSON в своей ячейке. {"address":{"city":"London"}} превращается в ячейку {"city":"London"}. Информация сохраняется, но перестаёт быть структурированной: инструмент не разворачивает address.city в столбец с точкой. Если нужны столбцы с точками, сначала уплощите JSON — это решение о модели данных, а не о форматировании.

Кавычки, разделители и концы строк

Вывод следует RFC 4180 — правилу, о котором договорились все табличные процессоры и библиотеки CSV:

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

Чтобы Excel открыл файл корректно

Excel не читает UTF-8 безоговорочно: получив .csv без метки порядка байтов, он угадывает кодировку и часто выбирает устаревшую кодовую страницу, отчего портятся буквы с диакритикой и текст CJK. Параметр BOM для Excel добавляет в начало загружаемого файла трёхбайтовую метку UTF-8, и Excel читает его правильно. Она применяется только к загрузке, текст на странице остаётся чистым.

Что CSV не сможет вернуть

CSV — текстовый формат, и он теряет данные. Он забывает, какие значения были числами, логическими или null, и уплощает вложенность в текст. null и пустая строка оба приходят как пустая ячейка, а число — как свои цифры. При обратном преобразовании в JSON вы получите строки, если на другой странице не включите определение типов, — и даже тогда код вроде 007 должен остаться строкой, чтобы сохранить ведущие нули. Сохраняйте исходный JSON, когда типы важны; считайте CSV экспортом, а не первоисточником.

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

Какие формы JSON можно преобразовать в CSV?

CSV — это таблица, поэтому самая естественная форма входа — массив объектов: каждый объект становится строкой, а его ключи — столбцами. Массив массивов используется как строки напрямую, один объект становится одной строкой, а массив простых значений — одним столбцом. Всё остальное——отдельное число, строка или null——таблицей не является и отклоняется.

Что происходит, когда у объектов разные ключи?

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

Как обрабатываются вложенные объекты и массивы?

В CSV нет вложенности, поэтому значение, которое само является объектом или массивом, записывается в ячейку как компактный JSON. Информация сохраняется, но перестаёт быть структурированной: это преобразование уплощает через преобразование в строку, а не разворачивает вложенные ключи в столбцы с точками.

Когда поле заключается в кавычки?

Поле заключается в кавычки, когда содержит разделитель, двойную кавычку, перевод строки или пробелы в начале или конце. Внутри такого поля литеральная двойная кавычка записывается дважды, поэтому текст воспроизводится точно. Это правило RFC 4180, и именно оно позволяет одной ячейке содержать запятую или перевод строки.

Почему CSV отображается в Excel как мусор?

Excel угадывает кодировку файла .csv и без метки порядка байтов часто выбирает устаревшую кодовую страницу, из-за чего портятся символы с диакритикой и текст CJK. Флажок BOM добавляет в начало загружаемого файла U+FEFF, и Excel читает его как UTF-8. BOM добавляется только к загрузке, а не к тексту, показанному здесь.

Преобразование JSON в CSV обратимо без потерь?

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

Нужно обратное направление? CSV в JSON читает таблицу обратно в массив объектов. Нашли ошибку? Свяжитесь с нами.