Данные · 2 мин чтения ·

JSON в CSV без потери единого поля

Вложенные ключи, необязательные поля и запятые внутри строк: как 4Dev превращает запутанный JSON в CSV, готовый для таблицы.

Таблица плоская, а JSON нет. Любая конвертация JSON в CSV должна решить, что делать с вложенными объектами, массивами и ключами, которые есть только у части записей. Вот что именно делает конвертер 4Dev.

У каждого ключа своя колонка

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

[{"id":1,"name":"Ada"},
 {"id":2,"name":"Alan","note":"optional"}]

id,name,note
1,Ada,
2,Alan,optional

Вложенные объекты становятся колонками с подчёркиванием

Объекты разворачиваются: их ключи соединяются через подчёркивание, и {"address":{"city":"Lisbon"}} превращается в колонку address_city. Массив простых значений попадает в одну ячейку ("admin, dev"), а массив объектов сохраняется в ячейке как текст JSON, так что ничего не теряется.

Запятые и кавычки экранируются автоматически

Любое значение с запятой, двойной кавычкой или переносом строки заключается в двойные кавычки, а внутренние кавычки удваиваются. Это стандартное правило CSV, которого ждут Excel и Google Таблицы.

2,"Alan, T.","says ""hi"""

Открыть конвертер JSON в CSV