JSON в CSV
онлайн
Вложенные объекты разворачиваются в колонки с точкой в названии, а результат настраивается так, чтобы русский Excel открыл его без кракозябр и без склеенных колонок.
JSON — дерево, а таблица плоская
В этом вся сложность. Запись вида «пользователь, у которого внутри имя и адрес» в таблицу напрямую не ложится: у ячейки нет вложенности. Мы разворачиваем такие поля в отдельные колонки с точкой в названии — из «user» с вложенным «name» получается колонка «user.name». Массивы внутри записи не разворачиваем: у разных записей в них разное число элементов, и таблица расползлась бы. Их складываем в одну ячейку как есть.
Вторая половина работы — чтобы полученный файл открылся. Русский Excel ждёт точку с запятой в качестве разделителя, а UTF-8 без метки BOM считает однобайтовой кодировкой и показывает кириллицу кракозябрами. Оба параметра выставлены по умолчанию под этот сценарий, но переключаются, если файл пойдёт в программу, а не в Excel. Ещё инструмент сам находит массив, если данные завёрнуты в объект вида «data» или «items».
- Вложенные объекты разворачиваются в колонки через точку
- Колонки собираются по всем записям, а не по первой
- Массив находится, даже если завёрнут в объект
- Разделитель и кодировка под русский Excel
- Метка BOM, без которой Excel портит кириллицу