IZN Tools

Конвертер JSON в CSV

Развернуть вложенные объекты в колонки для таблицы.

JSON
CSV
Ожидание ввода
Посчитано на вашем устройстве

Уплощение теряет информацию, и это нормально

JSON — дерево, CSV — прямоугольник. Любое преобразование обязано решить, что делать с тем, что не помещается, и делать вид, будто это не так, — значит готовить сюрпризы:

  • Вложенный объект → колонки через точку, address.city
  • Массив → текст JSON в ячейке
  • null → пустая ячейка
  • Отсутствующий ключ → пустая ячейка, колонка на месте

Если дерево понадобится обратно, сохраните исходный JSON. CSV здесь — формат выгрузки, а не хранения.

Объединённый заголовок

Настоящие данные неровные: у части записей есть note, у части нет. Если взять за заголовок ключи первой записи, потеряются все колонки, появляющиеся позже. Здесь берётся объединение всех ключей в порядке первого появления, чтобы ничего не пропало незаметно.

Экранирование, на которое можно положиться

Значение берётся в кавычки, если содержит разделитель, кавычку, перенос строки либо пробелы по краям. Внутренние кавычки удваиваются. Это правило RFC 4180 — именно оно делает так, что файл с колонкой адреса открывается правильно, а не сдвигает все последующие поля на одну вправо.

Вопросы

Что происходит с вложенными объектами?+

Они превращаются в колонки с точкой в названии: объект адреса с городом внутри даёт колонку address.city. У вложенности нет представления в плоской таблице, а точечные пути — то соглашение, которое любой пользователь таблиц уже узнаёт.

Что происходит с массивами внутри записи?+

Они пишутся в ячейку как текст JSON. Правильного плоского представления списка в одной ячейке не существует, а придумать своё — например, склеить через точку с запятой — значит молча испортить любое значение, где эта точка с запятой есть.

У записей разные ключи. Это работает?+

Да. Заголовок — объединение всех встреченных ключей в порядке первого появления, а у записи без ключа ячейка остаётся пустой. Брать ключи только из первой записи, как делают многие конвертеры, значит молча терять колонки.

Откроется ли файл в Excel корректно?+

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